package model import ( "fmt" "strconv" ) const ( // IMSI 号码长度 IMSI_MAX_LENGTH = 15 // MSISDN 号码长度 MSISDN_MAX_LENGTH = 15 ) type CallTag int const ( TAG_VOIP CallTag = iota // VoIP标记 TAG_VoLTE // VoLTE标记 ) func (ct CallTag) Enum() string { switch ct { case TAG_VOIP: return "VoIP" case TAG_VoLTE: return "VoLTE" default: return "unknown" } } func (ct CallTag) String() string { return fmt.Sprintf("%d", ct) } // ParseCallTag 将字符串转换为 CallTag 枚举类型 func ParseCallTag(s string) CallTag { // 如果为空或转换失败,可以返回默认值,例如 VoIP i, err := strconv.Atoi(s) if err != nil { return TAG_VOIP } return CallTag(i) } // @Description VoLTE用户信息 type IMSUser struct { ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键 NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识 IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码 Tag CallTag `json:"tag" gorm:"column:tag"` // tag: 0=VoIP, 1=VoLTE VNI string `json:"vni" gorm:"column:vni"` // VNI TenantID string `json:"tenantID" gorm:"column:tenant_id"` TenantName string `json:"tenantName" gorm:"-"` } // TableName 表名称 func (*IMSUser) TableName() string { return "u_ims_user" }