Files
iotlcm/admin-svr/server/internal/model/traffic_usage.go
T

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"`
}