repeater/internal/models/models.go

58 lines
1.6 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"`
}
// SystemStatus represents overall system status
type SystemStatus struct {
Connected bool `json:"connected"`
ConnectedSSID string `json:"connectedSSID"`
HotspotEnabled bool `json:"hotspotEnabled"`
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
}