117 lines
3.7 KiB
Go
117 lines
3.7 KiB
Go
package platform
|
|
|
|
type Page[T any] struct {
|
|
Items []T `json:"items"`
|
|
Total int `json:"total"`
|
|
Limit int `json:"limit"`
|
|
Offset int `json:"offset"`
|
|
}
|
|
|
|
type DashboardSummary struct {
|
|
OnlineVehicles int `json:"onlineVehicles"`
|
|
ActiveToday int `json:"activeToday"`
|
|
FrameToday int `json:"frameToday"`
|
|
IssueVehicles int `json:"issueVehicles"`
|
|
KafkaLag int `json:"kafkaLag"`
|
|
Protocols []ProtocolStat `json:"protocols"`
|
|
LinkHealth []LinkHealth `json:"linkHealth"`
|
|
}
|
|
|
|
type ProtocolStat struct {
|
|
Protocol string `json:"protocol"`
|
|
Online int `json:"online"`
|
|
Total int `json:"total"`
|
|
}
|
|
|
|
type LinkHealth struct {
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
Detail string `json:"detail,omitempty"`
|
|
}
|
|
|
|
type VehicleRow struct {
|
|
VIN string `json:"vin"`
|
|
Plate string `json:"plate"`
|
|
Phone string `json:"phone"`
|
|
OEM string `json:"oem"`
|
|
Protocol string `json:"protocol"`
|
|
Online bool `json:"online"`
|
|
LastSeen string `json:"lastSeen"`
|
|
LocationText string `json:"locationText"`
|
|
BindingScore int `json:"bindingScore"`
|
|
}
|
|
|
|
type VehicleDetail struct {
|
|
VIN string `json:"vin"`
|
|
Identity *VehicleRow `json:"identity,omitempty"`
|
|
Sources []string `json:"sources"`
|
|
Realtime []RealtimeLocationRow `json:"realtime"`
|
|
History Page[HistoryLocationRow] `json:"history"`
|
|
Raw Page[RawFrameRow] `json:"raw"`
|
|
Mileage Page[DailyMileageRow] `json:"mileage"`
|
|
}
|
|
|
|
type RealtimeLocationRow struct {
|
|
VIN string `json:"vin"`
|
|
Plate string `json:"plate"`
|
|
Protocol string `json:"protocol"`
|
|
Longitude float64 `json:"longitude"`
|
|
Latitude float64 `json:"latitude"`
|
|
SpeedKmh float64 `json:"speedKmh"`
|
|
SOCPercent float64 `json:"socPercent"`
|
|
TotalMileageKm float64 `json:"totalMileageKm"`
|
|
LastSeen string `json:"lastSeen"`
|
|
}
|
|
|
|
type HistoryLocationRow struct {
|
|
VIN string `json:"vin"`
|
|
Plate string `json:"plate"`
|
|
Protocol string `json:"protocol"`
|
|
Longitude float64 `json:"longitude"`
|
|
Latitude float64 `json:"latitude"`
|
|
SpeedKmh float64 `json:"speedKmh"`
|
|
TotalMileageKm float64 `json:"totalMileageKm"`
|
|
DeviceTime string `json:"deviceTime"`
|
|
ServerTime string `json:"serverTime"`
|
|
}
|
|
|
|
type RawFrameRow struct {
|
|
ID string `json:"id"`
|
|
VIN string `json:"vin"`
|
|
Protocol string `json:"protocol"`
|
|
FrameType string `json:"frameType"`
|
|
DeviceTime string `json:"deviceTime"`
|
|
ServerTime string `json:"serverTime"`
|
|
RawSizeBytes int `json:"rawSizeBytes"`
|
|
ParsedFields map[string]any `json:"parsedFields"`
|
|
}
|
|
|
|
type DailyMileageRow struct {
|
|
VIN string `json:"vin"`
|
|
Plate string `json:"plate"`
|
|
Date string `json:"date"`
|
|
StartMileageKm float64 `json:"startMileageKm"`
|
|
EndMileageKm float64 `json:"endMileageKm"`
|
|
DailyMileageKm float64 `json:"dailyMileageKm"`
|
|
Source string `json:"source"`
|
|
AnomalySeverity string `json:"anomalySeverity,omitempty"`
|
|
}
|
|
|
|
type QualityIssueRow struct {
|
|
VIN string `json:"vin"`
|
|
Plate string `json:"plate"`
|
|
Protocol string `json:"protocol"`
|
|
IssueType string `json:"issueType"`
|
|
Severity string `json:"severity"`
|
|
LastSeen string `json:"lastSeen"`
|
|
Detail string `json:"detail"`
|
|
}
|
|
|
|
type OpsHealth struct {
|
|
LinkHealth []LinkHealth `json:"linkHealth"`
|
|
KafkaLag int `json:"kafkaLag"`
|
|
RedisOnlineKeys int `json:"redisOnlineKeys"`
|
|
TDengineWritable bool `json:"tdengineWritable"`
|
|
MySQLWritable bool `json:"mysqlWritable"`
|
|
}
|