package model import "time" // AssetIdentifier 全局资产标识符注册表模型 // 在数据库层保证 IoT 卡的 ICCID/VirtualNo 与设备的 VirtualNo 跨两张表全局唯一 // 不使用 gorm.Model(无需软删除),仅包含核心字段 type AssetIdentifier struct { ID uint `gorm:"column:id;primaryKey;autoIncrement" json:"id"` Identifier string `gorm:"column:identifier;type:varchar(100);uniqueIndex:uq_asset_identifier;not null;comment:标识符值(ICCID 或 VirtualNo,全局唯一)" json:"identifier"` AssetType string `gorm:"column:asset_type;type:varchar(20);not null;comment:资产类型:iot_card 或 device" json:"asset_type"` AssetID uint `gorm:"column:asset_id;index:idx_asset_identifier_asset;not null;comment:对应资产的主键 ID" json:"asset_id"` CreatedAt time.Time `gorm:"column:created_at;not null;default:now();comment:写入时间" json:"created_at"` } // TableName 指定表名 func (AssetIdentifier) TableName() string { return "tb_asset_identifier" } const ( AssetTypeIotCard = "iot_card" AssetTypeDevice = "device" )