49 lines
1.1 KiB
Go
49 lines
1.1 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 ValidInt64
|
|
CashierID ValidInt64
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
type CreateTransfer struct {
|
|
Amount Currency
|
|
Verified bool
|
|
ReceiverWalletID int64
|
|
SenderWalletID ValidInt64
|
|
CashierID ValidInt64
|
|
Type TransferType
|
|
PaymentMethod PaymentMethod
|
|
}
|