83 lines
1.5 KiB
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 ""
|
|
}
|