Files
waf-platform/EdgePlus/pkg/utils/edition.go

83 lines
1.5 KiB
Go

// Copyright 2023 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
package utils
type EditionDefinition struct {
Name string `json:"name"`
Code ComponentCode `json:"code"`
MaxNodes int `json:"maxNodes"`
Description string `json:"description"`
}
func FindAllEditions() []*EditionDefinition {
return []*EditionDefinition{
{
Name: "个人商业版",
Code: EditionBasic,
MaxNodes: 20,
},
{
Name: "商业版",
Code: EditionPro,
MaxNodes: 100,
},
{
Name: "企业版",
Code: EditionEnt,
MaxNodes: 500,
},
{
Name: "豪华版",
Code: EditionMax,
MaxNodes: 1000, // TODO 未定
},
{
Name: "旗舰版",
Code: EditionUltra,
MaxNodes: 1000,
},
}
}
func CheckEdition(edition Edition) bool {
for _, e := range FindAllEditions() {
if e.Code == edition {
return true
}
}
return false
}
func CompareEdition(edition1 Edition, edition2 Edition) int {
var index1 = -1
var index2 = -1
for index, edition := range FindAllEditions() {
if edition.Code == edition1 {
index1 = index
}
if edition.Code == edition2 {
index2 = index
}
}
if index2 > index1 {
return -1
}
if index2 == index1 {
return 0
}
return 1
}
func EditionName(edition Edition) string {
if len(edition) == 0 {
return ""
}
for _, e := range FindAllEditions() {
if e.Code == edition {
return e.Name
}
}
return ""
}