package models // Channel represents a single IPTV channel parsed from an M3U playlist. type Channel struct { ID string `json:"id"` Name string `json:"name"` Group string `json:"group"` LogoURL string `json:"logo_url"` StreamURL string `json:"stream_url"` } // StreamStatus represents the current streaming state. type StreamStatus struct { Source string `json:"source"` // "obs" or "iptv" ChannelName string `json:"channel_name"` // current IPTV channel name (empty if OBS) Live bool `json:"live"` } // ProcessInfo represents the status of a managed child process. type ProcessInfo struct { Running bool `json:"running"` PID int `json:"pid"` Uptime string `json:"uptime"` Error string `json:"error,omitempty"` } // SystemStatus holds status for all managed processes. type SystemStatus struct { MediaMTX ProcessInfo `json:"mediamtx"` FFmpeg ProcessInfo `json:"ffmpeg"` }