package main // ServiceClient defines the interface all *arr services must implement type ServiceClient interface { GetSystemStatus() (*SystemStatus, error) GetHealth() ([]HealthCheck, error) } // MovieService defines movie-specific operations (Radarr) type MovieService interface { ServiceClient GetMovies() ([]Movie, error) GetMovie(id int) (*Movie, error) AddMovie(movie *Movie) (*Movie, error) } // SeriesService defines series-specific operations (Sonarr) type SeriesService interface { ServiceClient GetSeries() ([]Series, error) GetSeriesById(id int) (*Series, error) AddSeries(series *Series) (*Series, error) } // HealthCheck is the struct that represents the health check result. type HealthCheck struct { Source string `json:"source"` Type string `json:"type"` Message string `json:"message"` }