82 lines
4.7 KiB
Go
82 lines
4.7 KiB
Go
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"`
|
||
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"
|
||
}
|