Files
sxchnge/backend/pkg/model/account_role/account_role.go
T

58 lines
1.7 KiB
Go

package account_role
import (
"strings"
)
type AccountRole string
const (
AccountRoleOperating AccountRole = "operating"
AccountRoleHold AccountRole = "hold"
AccountRoleTransit AccountRole = "transit"
AccountRoleSettlement AccountRole = "settlement"
AccountRoleClearing AccountRole = "clearing"
AccountRolePending AccountRole = "pending"
AccountRoleReserve AccountRole = "reserve"
AccountRoleLiquidity AccountRole = "liquidity"
AccountRoleFee AccountRole = "fee"
AccountRoleChargeback AccountRole = "chargeback"
AccountRoleAdjustment AccountRole = "adjustment"
)
const (
MetadataKeyFromRole = "from_role"
MetadataKeyToRole = "to_role"
)
func Parse(value string) (AccountRole, bool) {
switch strings.ToUpper(strings.TrimSpace(value)) {
case "ACCOUNT_ROLE_OPERATING", "OPERATING":
return AccountRoleOperating, true
case "ACCOUNT_ROLE_HOLD", "HOLD":
return AccountRoleHold, true
case "ACCOUNT_ROLE_TRANSIT", "TRANSIT":
return AccountRoleTransit, true
case "ACCOUNT_ROLE_SETTLEMENT", "SETTLEMENT":
return AccountRoleSettlement, true
case "ACCOUNT_ROLE_CLEARING", "CLEARING":
return AccountRoleClearing, true
case "ACCOUNT_ROLE_PENDING", "PENDING":
return AccountRolePending, true
case "ACCOUNT_ROLE_RESERVE", "RESERVE":
return AccountRoleReserve, true
case "ACCOUNT_ROLE_LIQUIDITY", "LIQUIDITY":
return AccountRoleLiquidity, true
case "ACCOUNT_ROLE_FEE", "FEE":
return AccountRoleFee, true
case "ACCOUNT_ROLE_CHARGEBACK", "CHARGEBACK":
return AccountRoleChargeback, true
case "ACCOUNT_ROLE_ADJUSTMENT", "ADJUSTMENT":
return AccountRoleAdjustment, true
case "ACCOUNT_ROLE_UNSPECIFIED", "UNSPECIFIED", "":
return "", true
default:
return "", false
}
}