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")
# пусто = API панели открыт без авторизации (личная панель);
# если задан — доступ только с Bearer-токеном
admin_token: str = ""
# offline = нет данных дольше offline_multiplier * interval агента (сек)
offline_multiplier: int = 3
@lru_cache
def get_settings() -> Settings:
return Settings()