diff --git a/internal/models/payment.go b/internal/models/payment.go index 4419546..d86d5f8 100644 --- a/internal/models/payment.go +++ b/internal/models/payment.go @@ -80,6 +80,7 @@ const ( PaymentTypeMobile PaymentType = "mobile" PaymentTypeSBP PaymentType = "sbp" PaymentTypeSberB2B PaymentType = "b2bSberbank" + PaymentTypeAlchemy PaymentType = "alchemy" ) var ( diff --git a/internal/payment_provider/alchemy/provider.go b/internal/payment_provider/alchemy/provider.go new file mode 100644 index 0000000..65fe985 --- /dev/null +++ b/internal/payment_provider/alchemy/provider.go @@ -0,0 +1,51 @@ +package alchemy + +import ( + "context" + "gitea.pena/PenaSide/treasurer/internal/errors" + "gitea.pena/PenaSide/treasurer/internal/models" + "github.com/gofiber/fiber/v2" + "go.uber.org/zap" +) + +const ProviderName = "alchemy" + +type Config struct { +} + +type Provider struct { + logger *zap.Logger + config *Config +} + +type Deps struct { + Logger *zap.Logger + Config *Config +} + +func New(deps Deps) *Provider { + return &Provider{ + logger: deps.Logger, + config: deps.Config, + } +} + +func (p *Provider) GetName() string { + return ProviderName +} + +func (p *Provider) GetSupportedPaymentMethods() []models.PaymentType { + return []models.PaymentType{models.PaymentTypeAlchemy} +} + +func (p *Provider) CreateInvoice(ctx context.Context, req map[string]string) (string, errors.Error) { + return "", nil +} + +func (p *Provider) RegisterWebhookHandlers(router fiber.Router) { + router.Post("/webhook/alchemy", p.handleWebhook) +} + +func (p *Provider) handleWebhook(ctx *fiber.Ctx) error { + return nil +}