NAM-APJATEL-BACKEND/model/dto/res/nearest_towers.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"`
}