implementations

package
v0.0.0-...-9b6af93 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Open

func Open(ctx context.Context, dsn string) (*sql.DB, error)

func RunMigrations

func RunMigrations(ctx context.Context, dsn, migrationsDir string) error

Types

type AccountRepository

type AccountRepository struct {
	// contains filtered or unexported fields
}

func NewAccountRepository

func NewAccountRepository(db *sql.DB) *AccountRepository

func (*AccountRepository) Create

func (r *AccountRepository) Create(ctx context.Context, account domain.Account) (domain.Account, error)

func (*AccountRepository) CreditInternalAccount

func (r *AccountRepository) CreditInternalAccount(ctx context.Context, accountNumber string, amount decimal.Decimal) error

func (*AccountRepository) DebitInternalAccount

func (r *AccountRepository) DebitInternalAccount(ctx context.Context, accountNumber string, amount decimal.Decimal) error

func (*AccountRepository) DepositFunds

func (r *AccountRepository) DepositFunds(ctx context.Context, accountNumber string, amount decimal.Decimal) error

func (*AccountRepository) GetByAccountNumber

func (r *AccountRepository) GetByAccountNumber(ctx context.Context, accountNumber string) (domain.Account, error)

func (*AccountRepository) HasAccountForCustomerIDAndCurrency

func (r *AccountRepository) HasAccountForCustomerIDAndCurrency(ctx context.Context, customerID string, currency string) (bool, error)

type RateRepository

type RateRepository struct {
	// contains filtered or unexported fields
}

func NewRateRepository

func NewRateRepository(db *sql.DB) *RateRepository

func (*RateRepository) EnsureDefaultRates

func (r *RateRepository) EnsureDefaultRates(ctx context.Context) error

func (*RateRepository) GetRate

func (r *RateRepository) GetRate(ctx context.Context, fromCurrency string, toCurrency string) (domain.Rate, error)

func (*RateRepository) GetRates

func (r *RateRepository) GetRates(ctx context.Context) ([]domain.Rate, error)

type TransferRepository

type TransferRepository struct {
	// contains filtered or unexported fields
}

func NewTransferRepository

func NewTransferRepository(db *sql.DB) *TransferRepository

func (*TransferRepository) Create

func (r *TransferRepository) Create(ctx context.Context, transfer domain.Transfer) (domain.Transfer, error)

func (*TransferRepository) Get

func (r *TransferRepository) Get(ctx context.Context, id string, transactionReference string, externalRefernece string) (domain.Transfer, error)

func (*TransferRepository) ProcessExternalTransfer

func (r *TransferRepository) ProcessExternalTransfer(
	ctx context.Context,
	debitAccountNumber string,
	totalDebitAmount decimal.Decimal,
	suspenseAccountNumber string,
	debitSuspenseAccountAmount decimal.Decimal,
	externalAccountNumber string,
	creditExternalAccountAmount decimal.Decimal,
	externalAccountCurrency string,
) error

func (*TransferRepository) ProcessInternalTransfer

func (r *TransferRepository) ProcessInternalTransfer(ctx context.Context, debitAccountNumber string, debitAmount decimal.Decimal, suspenseAccountNumber string, debitSuspenseAccountAmount decimal.Decimal, creditAccountNumber string, creditAmount decimal.Decimal) error

func (*TransferRepository) Update

func (r *TransferRepository) Update(ctx context.Context, transfer domain.Transfer) (domain.Transfer, error)

func (*TransferRepository) UpdateStatus

func (r *TransferRepository) UpdateStatus(ctx context.Context, transferID string, status domain.TransferStatus) error

type TransientAccountRepository

type TransientAccountRepository struct {
	// contains filtered or unexported fields
}

func NewTransientAccountRepository

func NewTransientAccountRepository(db *sql.DB) *TransientAccountRepository

func (*TransientAccountRepository) CreditSuspenseAccount

func (r *TransientAccountRepository) CreditSuspenseAccount(ctx context.Context, suspenseAccountNumber string, currency string, amount decimal.Decimal) error

func (*TransientAccountRepository) DebitSuspenseAccount

func (r *TransientAccountRepository) DebitSuspenseAccount(ctx context.Context, suspenseAccountNumber string, currency string, amount decimal.Decimal) error

func (*TransientAccountRepository) EnsureInternalAccounts

func (r *TransientAccountRepository) EnsureInternalAccounts(
	ctx context.Context,
	internalTransientAccountNumber string,
	internalChargesAccountNumber string,
	internalVATAccountNumber string,
	externalUSDGLAccountNumber string,
	externalGBPGLAccountNumber string,
	externalEURGLAccountNumber string,
	externalNGNGLAccountNumber string,

) error

func (*TransientAccountRepository) SettleFromSuspenseToFees

func (r *TransientAccountRepository) SettleFromSuspenseToFees(
	ctx context.Context,
	suspenseAccountNumber string,
	chargeAmount decimal.Decimal,
	vatAmount decimal.Decimal,
	chargesAccountNumber string,
	vatAccountNumber string,
	chargeUSD decimal.Decimal,
	vatUSD decimal.Decimal,
) error

type TransientAccountTransactionRepository

type TransientAccountTransactionRepository struct {
	// contains filtered or unexported fields
}

func NewTransientAccountTransactionRepository

func NewTransientAccountTransactionRepository(db *sql.DB) *TransientAccountTransactionRepository

func (*TransientAccountTransactionRepository) Create

type UserRepository

type UserRepository struct {
	// contains filtered or unexported fields
}

func NewUserRepository

func NewUserRepository(db *sql.DB) *UserRepository

func (*UserRepository) Create

func (r *UserRepository) Create(ctx context.Context, user domain.User) (domain.User, error)

func (*UserRepository) GetByCustomerID

func (r *UserRepository) GetByCustomerID(ctx context.Context, customerID string) (domain.User, error)

func (*UserRepository) GetByID

func (r *UserRepository) GetByID(ctx context.Context, id string) (domain.User, error)

func (*UserRepository) GetTransactionPinHashByCustomerID

func (r *UserRepository) GetTransactionPinHashByCustomerID(ctx context.Context, customerID string) (string, error)

func (*UserRepository) Update

func (r *UserRepository) Update(ctx context.Context, user domain.User) (domain.User, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL