// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn . //go:build plus package userconfigs type TrafficPackagePeriod = string const ( TrafficPackagePeriodMonth TrafficPackagePeriod = "month" TrafficPackagePeriodYear TrafficPackagePeriod = "year" ) func IsValidTrafficPackagePeriod(period string) bool { return period == TrafficPackagePeriodMonth || period == TrafficPackagePeriodYear } func TrafficPackagePeriodToMonths(count int32, unit TrafficPackagePeriod) int32 { if count < 0 { return count } switch unit { case TrafficPackagePeriodMonth: return count case TrafficPackagePeriodYear: return count * 12 } return 0 } func TrafficPackagePeriodUnitName(unit TrafficPackagePeriod) string { switch unit { case TrafficPackagePeriodMonth: return "个月" case TrafficPackagePeriodYear: return "年" } return "" } type PackageSizeUnit = string const ( TrafficPackageSizeUnitGB PackageSizeUnit = "gb" TrafficPackageSizeUnitTB PackageSizeUnit = "tb" TrafficPackageSizeUnitPB PackageSizeUnit = "pb" ) func IsValidTrafficPackageSizeUnit(unit string) bool { return unit == TrafficPackageSizeUnitGB || unit == TrafficPackageSizeUnitTB || unit == TrafficPackageSizeUnitPB } func TrafficPackageSizeBytes(count int32, unit PackageSizeUnit) int64 { switch unit { case TrafficPackageSizeUnitGB: return int64(count) * (1 << 30) case TrafficPackageSizeUnitTB: return int64(count) * (1 << 40) case TrafficPackageSizeUnitPB: return int64(count) * (1 << 50) } return 0 }