package wallet import ( "context" "github.com/SamuelTariku/FortuneBet-Backend/internal/domain" ) type WalletStore interface { CreateWallet(ctx context.Context, wallet domain.CreateWallet) (domain.Wallet, error) CreateCustomerWallet(ctx context.Context, customerWallet domain.CreateCustomerWallet) (domain.CustomerWallet, error) GetWalletByID(ctx context.Context, id int64) (domain.Wallet, error) GetAllWallets(ctx context.Context) ([]domain.Wallet, error) GetWalletsByUser(ctx context.Context, id int64) ([]domain.Wallet, error) GetCustomerWallet(ctx context.Context, customerID int64) (domain.GetCustomerWallet, error) GetAllBranchWallets(ctx context.Context) ([]domain.BranchWallet, error) UpdateBalance(ctx context.Context, id int64, balance domain.Currency) error UpdateWalletActive(ctx context.Context, id int64, isActive bool) error GetBalanceSummary(ctx context.Context, filter domain.ReportFilter) (domain.BalanceSummary, error) GetTotalWallets(ctx context.Context, filter domain.ReportFilter) (int64, error) } type TransferStore interface { CreateTransfer(ctx context.Context, transfer domain.CreateTransfer) (domain.Transfer, error) GetAllTransfers(ctx context.Context) ([]domain.Transfer, error) GetTransfersByWallet(ctx context.Context, walletID int64) ([]domain.Transfer, error) GetTransferByReference(ctx context.Context, reference string) (domain.Transfer, error) GetTransferByID(ctx context.Context, id int64) (domain.Transfer, error) UpdateTransferVerification(ctx context.Context, id int64, verified bool) error UpdateTransferStatus(ctx context.Context, id int64, status string) error }