64 lines
1.5 KiB
Go
64 lines
1.5 KiB
Go
// 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
|
|
}
|