Yimaru-BackEnd/internal/domain/transfer.go

51 lines
1.2 KiB
Go

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
}