package domain import "time" // AppState holds application state. type AppState struct { Source Source Destinations []Destination } // Source represents the source, currently always the mediaserver. type Source struct { Container Container Live bool Listeners int Tracks []string RTMPURL string RTMPInternalURL string ExitReason string } type DestinationStatus int const ( DestinationStatusOffAir DestinationStatus = iota DestinationStatusStarting DestinationStatusLive ) // Destination is a single destination. type Destination struct { Container Container Status DestinationStatus Name string URL string } // Container represents the current state of an individual container. // // The source of truth is always the Docker daemon, this struct is used only // for passing asynchronous state. type Container struct { ID string State string HealthState string CPUPercent float64 MemoryUsageBytes uint64 RxRate int TxRate int RxSince time.Time RestartCount int ExitCode *int }