58 lines
1.7 KiB
Go
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
|
|
}
|
|
}
|