package domain import "time" type TransactionType int const ( TRANSACTION_CASHOUT TransactionType = iota TRANSACTION_DEPOSIT ) type PaymentOption int64 const ( CASH_TRANSACTION PaymentOption = iota TELEBIRR_TRANSACTION ARIFPAY_TRANSACTION BANK ) // Transaction only represents when the user cashes out a bet in the shop // It probably would be better to call it a CashOut or ShopWithdrawal type Transaction struct { ID int64 Amount Currency BranchID int64 BranchName string BranchLocation string CompanyID int64 CashierID int64 CashierName string BetID int64 NumberOfOutcomes int64 Type TransactionType PaymentOption PaymentOption FullName string PhoneNumber string // Payment Details for bank BankCode string BeneficiaryName string AccountName string AccountNumber string ReferenceNumber string Verified bool ApprovedBy ValidInt64 ApproverName ValidString UpdatedAt time.Time CreatedAt time.Time } type TransactionFilter struct { CompanyID ValidInt64 BranchID ValidInt64 CashierID ValidInt64 } type CreateTransaction struct { Amount Currency BranchID int64 CashierID int64 BetID int64 NumberOfOutcomes int64 Type TransactionType PaymentOption PaymentOption FullName string PhoneNumber string BankCode string BeneficiaryName string AccountName string AccountNumber string ReferenceNumber string BranchName string BranchLocation string CompanyID int64 CashierName string }