package domain import ( "time" "go.mongodb.org/mongo-driver/bson/primitive" ) type SimCardStatus string const ( SimStatusUnknown SimCardStatus = "UNKNOWN" // 未知 SimStatusNotActivated SimCardStatus = "NOT_ACTIVATED" // 未激活 SimStatusActivated SimCardStatus = "ACTIVATED" // 已激活 SimStatusDeactivated SimCardStatus = "DEACTIVATED" // 已停用 SimStatusRetired SimCardStatus = "RETIRED" // 失效 ) type SimCardInfo struct { GICCID string `bson:"_id" json:"giccid"` // 只取前19位不取检验码 IMEI string `bson:"imei" json:"imei"` // 国际移动用户识别码 IMSI string `bson:"imsi" json:"imsi"` // 国际移动用户识别码 MSISDN string `bson:"msisdn" json:"msisdn"` // 移动用户号码 Status SimCardStatus `bson:"status" json:"status"` // 卡状态 ExpirationTime string `bson:"expirationTime" json:"expirationTime"` // 到期时间(后付费卡没有到期时间) 格式:yyyy-MM-dd Month string `bson:"month" json:"month"` // 统计月份 格式:yyyy-MM AllDataUsage float64 `bson:"allDataUsage" json:"allDataUsage"` // 月数据用量(KB) UpdateTime time.Time `bson:"updateTime" json:"updateTime"` // UTC时间 } type SimCardMonthlyData struct { ID primitive.ObjectID `bson:"_id,omitempty" json:"id"` SimId string `bson:"simId" json:"simId"` // GICCID UpdateTime time.Time `bson:"updateTime" json:"updateTime"` // UTC时间 Month string `bson:"month" json:"month"` // 统计月份 格式:yyyy-MM AllDataUsage float64 `bson:"allDataUsage" json:"allDataUsage"` // 月数据用量(KB) DailyUsage map[uint8]SimCardDailyUsage `bson:"dailyUsage" json:"dailyUsage"` // 日用量数据信息 (index=当月日数1-31) } type SimCardDayData struct { SimId string `bson:"simId" json:"simId"` // GICCID UpdateTime time.Time `bson:"updateTime" json:"updateTime"` // UTC时间 Month string `bson:"month" json:"month"` // 统计月份 格式:yyyy-MM AllDataUsage float64 `bson:"allDataUsage" json:"allDataUsage"` // 月数据用量(KB) Day uint8 `bson:"day" json:"day"` // 当天日期值 1-31 DailyUsage SimCardDailyUsage `bson:"dailyUsage" json:"dailyUsage"` // 日用量数据信息 } type SimCardDailyUsage struct { UpdateTime time.Time `bson:"updateTime" json:"updateTime"` // UTC时间 Day string `bson:"day" json:"day"` // 统计日期 格式:yyyy-MM-DD DataUsage float64 `bson:"dataUsage" json:"dataUsage"` // 数据用量(KB) }