from pydantic_settings import BaseSettings from typing import Literal class Settings(BaseSettings): database_url: str = "sqlite+aiosqlite:///./data.db" admin_password: str = "admin123" media_origin_host: str = "127.0.0.1" media_origin_rtmp_port: int = 1935 media_origin_api_port: int = 9997 media_origin_hls_port: int = 8888 edge_nodes: list[dict] = [ { "id": "default", "name": "Origin (Default)", "host": "127.0.0.1", "hls_port": 8888, "api_port": 9997, "weight": 100, "enabled": True, "subnet": "0.0.0.0/0", "is_origin": True, }, ] load_balance_strategy: Literal["round-robin", "weighted", "least-conn", "subnet"] = "subnet" qualities: list[dict] = [ {"label": "1080p", "width": 1920, "height": 1080, "bitrate": "5000k"}, {"label": "720p", "width": 1280, "height": 720, "bitrate": "2500k"}, {"label": "480p", "width": 854, "height": 480, "bitrate": "1000k"}, {"label": "360p", "width": 640, "height": 360, "bitrate": "600k"}, ] multicast_enabled: bool = True multicast_address_base: str = "239.0.0.1" multicast_port_base: int = 5000 model_config = {"env_prefix": "LS_"} settings = Settings()