92 lines
2.4 KiB
Go
92 lines
2.4 KiB
Go
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"`
|
|
}
|