package models import "time" // WiFiNetwork represents a discovered WiFi network type WiFiNetwork struct { SSID string `json:"ssid"` Signal int `json:"signal"` Security string `json:"security"` Channel int `json:"channel"` BSSID string `json:"bssid"` } // ConnectedDevice represents a device connected to the hotspot type ConnectedDevice struct { Name string `json:"name"` Type string `json:"type"` MAC string `json:"mac"` IP string `json:"ip"` Vendor string `json:"vendor,omitempty"` SignalDbm int32 `json:"signalDbm,omitempty"` RxBytes uint64 `json:"rxBytes,omitempty"` TxBytes uint64 `json:"txBytes,omitempty"` ConnectedAt time.Time `json:"connectedAt,omitzero"` } // HotspotConfig represents hotspot configuration type HotspotConfig struct { SSID string `json:"ssid"` Password string `json:"password"` Channel int `json:"channel"` } // EthernetStatus represents the state of the wired uplink interface. // Active is true when the interface holds a DHCP-assigned IPv4 address. type EthernetStatus struct { Active bool `json:"active"` Interface string `json:"interface"` IPv4 string `json:"ipv4,omitempty"` } // HotspotStatus represents detailed hotspot status type HotspotStatus struct { State string `json:"state"` // ENABLED, DISABLED, etc. SSID string `json:"ssid"` // Current SSID being broadcast BSSID string `json:"bssid"` // MAC address of the AP Channel int `json:"channel"` // Current channel Frequency int `json:"frequency"` // Frequency in MHz NumStations int `json:"numStations"` // Number of connected stations HWMode string `json:"hwMode"` // Hardware mode (g, a, n, ac, etc.) CountryCode string `json:"countryCode"` // Country code } // SystemStatus represents overall system status type SystemStatus struct { Connected bool `json:"connected"` ConnectionState string `json:"connectionState"` // Connection state: connected, disconnected, connecting, disconnecting, roaming ConnectedSSID string `json:"connectedSSID"` HotspotStatus *HotspotStatus `json:"hotspotStatus,omitempty"` // Detailed hotspot status EthernetStatus *EthernetStatus `json:"ethernetStatus,omitempty"` // Wired uplink state, when probed ConnectedCount int `json:"connectedCount"` DataUsage float64 `json:"dataUsage"` Uptime int64 `json:"uptime"` ConnectedDevices []ConnectedDevice `json:"connectedDevices"` } // WiFiConnectRequest represents a request to connect to WiFi type WiFiConnectRequest struct { SSID string `json:"ssid" binding:"required"` Password string `json:"password"` } // LogEntry represents a system log entry type LogEntry struct { Timestamp time.Time `json:"timestamp"` Source string `json:"source"` Message string `json:"message"` } // DHCPLease represents a DHCP lease entry type DHCPLease struct { IP string MAC string Hostname string }