from functools import lru_cache
from pathlib import Path

from pydantic_settings import BaseSettings, SettingsConfigDict


class Settings(BaseSettings):
    """Настройки panel, всё через env с префиксом GHARD_ (см. .env.example)."""

    model_config = SettingsConfigDict(env_prefix="GHARD_", env_file=".env", extra="ignore")

    database_path: Path = Path("/data/hard-panel.db")
    admin_token: str = "change-me"
    # offline = нет данных дольше offline_multiplier * interval агента (сек)
    offline_multiplier: int = 3


@lru_cache
def get_settings() -> Settings:
    return Settings()