83 lines
2.1 KiB
Go
Raw Permalink Normal View History

2025-07-18 20:10:29 +07:00
package constants
type PaymentMethodType string
const (
PaymentMethodTypeCash PaymentMethodType = "cash"
PaymentMethodTypeCard PaymentMethodType = "card"
PaymentMethodTypeDigitalWallet PaymentMethodType = "digital_wallet"
PaymentMethodTypeQR PaymentMethodType = "qr"
PaymentMethodTypeEDC PaymentMethodType = "edc"
)
type PaymentStatus string
const (
PaymentStatusPending PaymentStatus = "pending"
PaymentStatusCompleted PaymentStatus = "completed"
PaymentStatusFailed PaymentStatus = "failed"
PaymentStatusRefunded PaymentStatus = "refunded"
)
type PaymentTransactionStatus string
const (
PaymentTransactionStatusPending PaymentTransactionStatus = "pending"
PaymentTransactionStatusCompleted PaymentTransactionStatus = "completed"
PaymentTransactionStatusFailed PaymentTransactionStatus = "failed"
PaymentTransactionStatusRefunded PaymentTransactionStatus = "refunded"
)
func GetAllPaymentMethodTypes() []PaymentMethodType {
return []PaymentMethodType{
PaymentMethodTypeCash,
PaymentMethodTypeCard,
PaymentMethodTypeDigitalWallet,
}
}
func GetAllPaymentStatuses() []PaymentStatus {
return []PaymentStatus{
PaymentStatusPending,
PaymentStatusCompleted,
PaymentStatusFailed,
PaymentStatusRefunded,
}
}
func GetAllPaymentTransactionStatuses() []PaymentTransactionStatus {
return []PaymentTransactionStatus{
PaymentTransactionStatusPending,
PaymentTransactionStatusCompleted,
PaymentTransactionStatusFailed,
PaymentTransactionStatusRefunded,
}
}
func IsValidPaymentMethodType(methodType PaymentMethodType) bool {
for _, validType := range GetAllPaymentMethodTypes() {
if methodType == validType {
return true
}
}
return false
}
func IsValidPaymentStatus(status PaymentStatus) bool {
for _, validStatus := range GetAllPaymentStatuses() {
if status == validStatus {
return true
}
}
return false
}
func IsValidPaymentTransactionStatus(status PaymentTransactionStatus) bool {
for _, validStatus := range GetAllPaymentTransactionStatuses() {
if status == validStatus {
return true
}
}
return false
}