Yimaru-BackEnd/internal/services/wallet/interface.go

57 lines
3.4 KiB
Go

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)
// }