package domain import "time" type TransferType string const ( DEPOSIT TransferType = "deposit" WITHDRAW TransferType = "withdraw" WALLET TransferType = "wallet" ) type PaymentMethod string const ( TRANSFER_CASH PaymentMethod = "cash" TRANSFER_BANK PaymentMethod = "bank" TRANSFER_CHAPA PaymentMethod = "chapa" TRANSFER_ARIFPAY PaymentMethod = "arifpay" TRANSFER_SANTIMPAY PaymentMethod = "santimpay" TRANSFER_ADDISPAY PaymentMethod = "addispay" TRANSFER_OTHER PaymentMethod = "other" ) // There is always a receiving wallet id // There is a sender wallet id only if wallet transfer type type Transfer struct { ID int64 Amount Currency Verified bool Type TransferType PaymentMethod PaymentMethod ReceiverWalletID int64 SenderWalletID int64 ReferenceNumber string CashierID ValidInt64 CreatedAt time.Time UpdatedAt time.Time } type CreateTransfer struct { Amount Currency Verified bool ReferenceNumber string ReceiverWalletID int64 SenderWalletID int64 CashierID ValidInt64 Type TransferType PaymentMethod PaymentMethod }