71 lines
2.4 KiB
Go
71 lines
2.4 KiB
Go
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"`
|
|
}
|
|
|
|
// HotspotConfig represents hotspot configuration
|
|
type HotspotConfig struct {
|
|
SSID string `json:"ssid"`
|
|
Password string `json:"password"`
|
|
Channel int `json:"channel"`
|
|
}
|
|
|
|
// 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
|
|
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
|
|
}
|