package model import "time" // TrafficUsageBase contains fields shared by daily and monthly usage records. type TrafficUsageBase struct { Iccid string UsageMb float64 PackageCode string } // TrafficUsageDailyItem represents one card's usage snapshot for one day. // Date is normalized to 23:59:59 of that day before writing to TDengine. type TrafficUsageDailyItem struct { TrafficUsageBase Date time.Time } // TrafficUsageMonthlyItem represents one card's usage snapshot for one month. // Month is normalized to 23:59:59 of the last day of that month before writing to TDengine. type TrafficUsageMonthlyItem struct { TrafficUsageBase Month time.Time } // TrafficPoolUsageItem represents one flow pool's usage snapshot. type TrafficPoolUsageItem struct { FlowPoolCode string UsageMb float64 Date time.Time } // TrafficPoolCardCountItem represents one flow pool's card count snapshot. type TrafficPoolCardCountItem struct { FlowPoolCode string CardCount int64 Date time.Time } // TrafficPoolCard is the card data needed for flow pool aggregation. type TrafficPoolCard struct { Iccid string FlowPoolCode string } // TrafficPoolUsageAggregate is the aggregation result for one flow pool. type TrafficPoolUsageAggregate struct { FlowPoolCode string UsageMb float64 RecordCount int64 } // TrafficUsageQueryInput filters usage records by ICCID and time range. type TrafficUsageQueryInput struct { Iccid string StartTime time.Time EndTime time.Time Page int PageSize int Asc bool } // TrafficUsageDeleteInput deletes usage records by ICCID and a required time range. type TrafficUsageDeleteInput struct { Iccid string StartTime time.Time EndTime time.Time } // TrafficUsageDailyRecord is a daily usage query result row. type TrafficUsageDailyRecord struct { Ts time.Time `json:"ts"` UsageMb float64 `json:"usageMb"` PackageCode string `json:"packageCode"` Iccid string `json:"iccid"` } // TrafficUsageMonthlyRecord is a monthly usage query result row. type TrafficUsageMonthlyRecord struct { Ts time.Time `json:"ts"` UsageMb float64 `json:"usageMb"` PackageCode string `json:"packageCode"` Iccid string `json:"iccid"` } // TopUsageCard is one card in the usage ranking. type TopUsageCard struct { Iccid string `json:"iccid"` UsageMb float64 `json:"usageMb"` StatDate string `json:"statDate"` }