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" }