package transaction import ( "context" "github.com/SamuelTariku/FortuneBet-Backend/internal/domain" ) type TransactionStore interface { CreateShopTransaction(ctx context.Context, transaction domain.CreateShopTransaction) (domain.ShopTransaction, error) GetAllShopTransactions(ctx context.Context, filter domain.ShopTransactionFilter) ([]domain.ShopTransactionDetail, error) GetShopTransactionByID(ctx context.Context, id int64) (domain.ShopTransactionDetail, error) GetShopTransactionByBranch(ctx context.Context, id int64) ([]domain.ShopTransactionDetail, error) UpdateShopTransactionVerified(ctx context.Context, id int64, verified bool, approvedBy int64) error GetTransactionTotals(ctx context.Context, filter domain.ReportFilter) (deposits, withdrawals domain.Currency, err error) GetBranchTransactionTotals(ctx context.Context, filter domain.ReportFilter) (map[int64]domain.BranchTransactions, error) CreateShopBet(ctx context.Context, bet domain.CreateShopBet) (domain.ShopBet, error) GetAllShopBet(ctx context.Context, filter domain.ShopBetFilter) ([]domain.ShopBetDetail, error) GetShopBetByID(ctx context.Context, id int64) (domain.ShopBetDetail, error) GetShopBetByBetID(ctx context.Context, betID int64) (domain.ShopBetDetail, error) GetShopBetByCashoutID(ctx context.Context, cashoutID string) (domain.ShopBetDetail, error) GetShopBetByShopTransactionID(ctx context.Context, shopTransactionID int64) (domain.ShopBetDetail, error) UpdateShopBetCashOut(ctx context.Context, id int64, cashedOut bool) error UpdateShopBetCashoutID(ctx context.Context, id int64, cashoutID string) error CreateShopDeposit(ctx context.Context, deposit domain.CreateShopDeposit) (domain.ShopDeposit, error) GetAllShopDeposit(ctx context.Context, filter domain.ShopDepositFilter) ([]domain.ShopDepositDetail, error) GetShopDepositByID(ctx context.Context, id int64) (domain.ShopDepositDetail, error) GetShopDepositByShopTransactionID(ctx context.Context, shopTransactionID int64) (domain.ShopDepositDetail, error) UpdateShopDepositTransferID(ctx context.Context, id int64, transferID domain.ValidInt64) error }