package model import ( "SciencesServer/utils" "time" "gorm.io/gorm" ) type SysTenant struct { Model ParentID uint64 `gorm:"column:parent_id;type:int;default:0;comment:父级ID" json:"-"` Key string `gorm:"column:key;type:varchar(100);default:null;comment:租户/租户客户标识" json:"key"` Image Name string `gorm:"column:name;type:varchar(30);default:null;comment:租户名称/租户客户名称" json:"name"` Config string `gorm:"column:config;type:text;comment:租户/租户客户配置信息" json:"-"` Deadline time.Time `gorm:"column:deadline;type:datetime;default:null;comment:租户/租户客户协议截止时间" json:"deadline"` Status SysTenantStatus `gorm:"column:status;type:tinyint(1);default:1;comment:租户/租户客户状态" json:"status"` Remark string `gorm:"column:remark;type:varchar(255);default:null;comment:租户/租户客户备注" json:"remark"` ModelDeleted ModelAt } type SysTenantConfig struct { MaxDevices int `json:"max_devices"` // 最大可连接设备数 MaxCustomer int `json:"max_customer"` // 最大可拥有的客户数 Protocol uint `json:"protocol"` // 支持的协议模式 } type SysTenantStatus int const ( // SysTenantStatusForNormal 正常 SysTenantStatusForNormal SysTenantStatus = iota + 1 // SysTenantStatusForWellExpire 协议将到期 SysTenantStatusForWellExpire // SysTenantStatusForExpired 协议已过期 SysTenantStatusForExpired // SysTenantStatusForDisable 已禁用 SysTenantStatusForDisable ) func (m *SysTenant) TableName() string { return "sys_tenant" } func (m *SysTenant) BeforeCreate(db *gorm.DB) error { snowflake, _ := utils.NewSnowflake(1) m.Key = utils.IntToString(snowflake.GetID()) m.CreatedAt = time.Now() return nil } func (m *SysTenant) ConfigInfo() *SysTenantConfig { config := new(SysTenantConfig) _ = utils.FromJSON(m.Config, config) return config } func (m *SysTenant) StatusTitle() string { if m.Status == SysTenantStatusForDisable { return "禁用" } return "正常" } func NewSysTenant() *SysTenant { return &SysTenant{} }