Files
yunzerwebsiteallinone/go/models/system_tenant_package.go

84 lines
4.9 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package models
import "time"
// SystemTenantPackage 租户套餐表 yz_system_tenant_package
// 套餐 = 可开通的功能模块集合 + 用户数配额(含用户数 / 单用户增购价)
type SystemTenantPackage struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Name string `orm:"column(name);size(64)" json:"name"`
Code string `orm:"column(code);size(64)" json:"code"`
Description string `orm:"column(description);size(500)" json:"description"`
Price float64 `orm:"column(price);digits(10);decimals(2)" json:"price"` // 套餐售价(元/年,按有效时长一次性计费)
DurationDays int `orm:"column(duration_days);default(365)" json:"duration_days"` // 套餐有效时长(天),365=按年计费;到期后租户自动切换基础套餐
UserQuota int `orm:"column(user_quota);default(20)" json:"user_quota"`
ExtraUserPrice float64 `orm:"column(extra_user_price);digits(10);decimals(2)" json:"extra_user_price"`
IsDefault int8 `orm:"column(is_default);default(0)" json:"is_default"`
// AllowRepurchase 是否允许重复购买:1允许(默认) 0仅可购买一次(体验套餐场景)
AllowRepurchase int8 `orm:"column(allow_repurchase);default(1)" json:"allow_repurchase"`
Sort int `orm:"column(sort);default(0)" json:"sort"`
Status int8 `orm:"column(status);default(1)" json:"status"`
Remark string `orm:"column(remark);size(255)" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
}
func (m *SystemTenantPackage) TableName() string {
return "yz_system_tenant_package"
}
// SystemTenantPackageModule 套餐-功能模块关联表 yz_system_tenant_package_module
// module_code 对应 yz_system_modules.code(如 erp / oa / crm / cms)
type SystemTenantPackageModule struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
PackageID uint64 `orm:"column(package_id)" json:"package_id"`
ModuleCode string `orm:"column(module_code);size(64)" json:"module_code"`
ModuleName string `orm:"column(module_name);size(64)" json:"module_name"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
}
func (m *SystemTenantPackageModule) TableName() string {
return "yz_system_tenant_package_module"
}
// SystemTenantUserQuotaPackage 用户数加购套餐表 yz_system_tenant_user_quota_package
// 平台可维护的规格,如「5人套餐 / 500元」;租户增购时选择该规格即增加对应人数。
type SystemTenantUserQuotaPackage struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Name string `orm:"column(name);size(64)" json:"name"`
UserCount int `orm:"column(user_count);default(0)" json:"user_count"`
Price float64 `orm:"column(price);digits(10);decimals(2)" json:"price"`
Sort int `orm:"column(sort);default(0)" json:"sort"`
Status int8 `orm:"column(status);default(1)" json:"status"`
Remark string `orm:"column(remark);size(255)" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
}
func (m *SystemTenantUserQuotaPackage) TableName() string {
return "yz_system_tenant_user_quota_package"
}
// SystemTenantQuotaOrder 租户用户数增购记录表 yz_system_tenant_quota_order
type SystemTenantQuotaOrder struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Tid uint64 `orm:"column(tid)" json:"tid"`
Type int8 `orm:"column(type);default(1)" json:"type"` // 1单个增购 2套餐增购
QuotaPackageID uint64 `orm:"column(quota_package_id);default(0)" json:"quota_package_id"`
PackageName string `orm:"column(package_name);size(64)" json:"package_name"`
UserCount int `orm:"column(user_count);default(0)" json:"user_count"`
UnitPrice float64 `orm:"column(unit_price);digits(10);decimals(2)" json:"unit_price"`
Amount float64 `orm:"column(amount);digits(10);decimals(2)" json:"amount"`
QuotaBefore int `orm:"column(quota_before);default(0)" json:"quota_before"`
QuotaAfter int `orm:"column(quota_after);default(0)" json:"quota_after"`
Operator string `orm:"column(operator);size(64)" json:"operator"`
Remark string `orm:"column(remark);size(255)" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
}
func (m *SystemTenantQuotaOrder) TableName() string {
return "yz_system_tenant_quota_order"
}