from pydantic_settings import BaseSettings from functools import lru_cache class Settings(BaseSettings): database_url: str = "postgresql+asyncpg://kirastream:kirastream_secret_2024@localhost/kirastream" redis_url: str = "redis://localhost:6379/0" secret_key: str = "kirastream-super-secret-change-in-production-2024" algorithm: str = "HS256" access_token_expire_minutes: int = 60 * 24 * 7 # 7 days admin_username: str = "admin" admin_password: str = "kiraadmin" stream_chunk_size: int = 65536 # 64 KB chunks stream_queue_maxsize: int = 512 stream_connect_timeout: int = 10 stream_read_timeout: int = 30 epg_refresh_hours: int = 12 m3u_cache_minutes: int = 30 log_level: str = "INFO" class Config: env_file = "/opt/kirastream/.env" @lru_cache def get_settings() -> Settings: return Settings() settings = get_settings()