package wallet // import ( // "context" // "github.com/SamuelTariku/FortuneBet-Backend/internal/domain" // ) // type WalletStore interface { // GetCompanyByWalletID(ctx context.Context, walletID int64) (domain.Company, error) // GetBranchByWalletID(ctx context.Context, walletID int64) (domain.Branch, error) // 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) // GetAllCustomerWallets(ctx context.Context) ([]domain.GetCustomerWallet, 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.TransferDetail, error) // GetTransfersByWallet(ctx context.Context, walletID int64) ([]domain.TransferDetail, error) // GetTransferByReference(ctx context.Context, reference string) (domain.TransferDetail, error) // GetTransferByID(ctx context.Context, id int64) (domain.TransferDetail, error) // GetTransferStats(ctx context.Context, walletID int64) (domain.TransferStats, error) // UpdateTransferVerification(ctx context.Context, id int64, verified bool) error // UpdateTransferStatus(ctx context.Context, id int64, status string) error // // InitiateTransfer(ctx context.Context, transfer domain.CreateTransfer) (domain.Transfer, error) // // ApproveTransfer(ctx context.Context, approval domain.ApprovalRequest) error // // RejectTransfer(ctx context.Context, approval domain.ApprovalRequest) error // // GetPendingApprovals(ctx context.Context) ([]domain.TransferDetail, error) // // GetTransferApprovalHistory(ctx context.Context, transferID int64) ([]domain.TransactionApproval, error) // } // type ApprovalStore interface { // CreateApproval(ctx context.Context, approval domain.TransactionApproval) error // UpdateApprovalStatus(ctx context.Context, approvalID int64, status string, comments string) error // GetApprovalsByTransfer(ctx context.Context, transferID int64) ([]domain.TransactionApproval, error) // GetPendingApprovals(ctx context.Context) ([]domain.TransferDetail, error) // } // type DirectDepositStore interface { // CreateDirectDeposit(ctx context.Context, deposit domain.CreateDirectDeposit) (domain.DirectDeposit, error) // GetDirectDeposit(ctx context.Context, id int64) (domain.DirectDeposit, error) // UpdateDirectDeposit(ctx context.Context, deposit domain.UpdateDirectDeposit) (domain.DirectDeposit, error) // GetDirectDepositsByStatus(ctx context.Context, status domain.DirectDepositStatus) ([]domain.DirectDeposit, error) // GetCustomerDirectDeposits(ctx context.Context, customerID int64) ([]domain.DirectDeposit, error) // }