54 lines
2.0 KiB
Go
54 lines
2.0 KiB
Go
package res
|
|
|
|
import (
|
|
"time"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// Simplified response for list
|
|
type NearestTowerResponse struct {
|
|
ID uuid.UUID `json:"id"`
|
|
TowerCode string `json:"tower_code"`
|
|
Distance float64 `json:"distance_km"`
|
|
Address string `json:"address"`
|
|
Longitude float64 `json:"longitude"`
|
|
Latitude float64 `json:"latitude"`
|
|
ImageURL *string `json:"image_url,omitempty"`
|
|
ExternalTower *bool `json:"external_tower,omitempty"`
|
|
DeviceCode *string `json:"device_code,omitempty"`
|
|
Province *string `json:"province,omitempty"`
|
|
City *string `json:"city,omitempty"`
|
|
District *string `json:"district,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
// Detailed response for single tower
|
|
type NearestTowerDetailResponse struct {
|
|
ID uuid.UUID `json:"id"`
|
|
TowerCode string `json:"tower_code"`
|
|
Distance float64 `json:"distance_km"`
|
|
Address string `json:"address"`
|
|
Longitude float64 `json:"longitude"`
|
|
Latitude float64 `json:"latitude"`
|
|
ImageURL *string `json:"image_url,omitempty"`
|
|
ImageURLs []string `json:"image_urls,omitempty"`
|
|
ExternalTower *bool `json:"external_tower,omitempty"`
|
|
|
|
// Connected device information
|
|
Device *DeviceConnectionInfo `json:"device,omitempty"`
|
|
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type DeviceConnectionInfo struct {
|
|
ID uuid.UUID `json:"id"`
|
|
DeviceCode string `json:"device_code"`
|
|
DeviceType string `json:"device_type"`
|
|
Distance float64 `json:"distance_from_towers_to_device_km"` // Distance from tower to device
|
|
Address string `json:"address"`
|
|
Longitude float64 `json:"longitude"`
|
|
Latitude float64 `json:"latitude"`
|
|
Status string `json:"status"`
|
|
PortAmount int `json:"port_amount"`
|
|
} |