0f25ebc26d
* plex integration * The big one - Full Music Source page rework + Playlist importing + Full Plex Integration + Discovery Options + More Like This/Surprise Me/Instant Mix + More... * Music source track page - Play all / shuffle fixes * lint * format * fix type checks * format
39 lines
741 B
Python
39 lines
741 B
Python
from typing import Literal
|
|
|
|
from models.common import ServiceStatus as ServiceStatus
|
|
from infrastructure.msgspec_fastapi import AppStruct
|
|
|
|
|
|
GenreArtistMap = dict[str, str | None]
|
|
|
|
|
|
class IntegrationStatus(AppStruct):
|
|
listenbrainz: bool
|
|
jellyfin: bool
|
|
lidarr: bool
|
|
youtube: bool
|
|
lastfm: bool
|
|
navidrome: bool = False
|
|
youtube_api: bool = False
|
|
plex: bool = False
|
|
|
|
|
|
class StatusReport(AppStruct):
|
|
status: Literal["ok", "degraded", "error"]
|
|
services: dict[str, ServiceStatus]
|
|
|
|
|
|
class LastFmTagSchema(AppStruct):
|
|
name: str
|
|
url: str | None = None
|
|
|
|
|
|
class StatusMessageResponse(AppStruct):
|
|
status: str
|
|
message: str
|
|
|
|
|
|
class VerifyConnectionResponse(AppStruct):
|
|
valid: bool
|
|
message: str
|