package yookassa import ( "context" "go.uber.org/fx" "payouts/internal/config" "payouts/internal/models" "payouts/internal/service/database/orm" ) var Module = fx.Options( fx.Provide(New), ) type params struct { ctx context.Context } type Optional func(*params) func WithContext(ctx context.Context) Optional { return func(p *params) { p.ctx = ctx } } type Service interface { CreatePayout(models.PayoutReq, *orm.User, ...Optional) } type Param struct { fx.In AppConfig *config.App } func New(p Param) (Service, error) { return NewYookassaService(p.AppConfig.YooKassa) }