from functools import lru_cache from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") telegram_bot_token: str = Field(alias="TELEGRAM_BOT_TOKEN") border_status_url: str = Field( default="https://gpk.gov.by/situation-at-the-border/", alias="BORDER_STATUS_URL", ) ai_base_url: str | None = Field(default=None, alias="AI_BASE_URL") ai_api_key: str | None = Field(default=None, alias="AI_API_KEY") ai_model: str = Field(default="gpt-5.5", alias="AI_MODEL") request_timeout_seconds: float = Field(default=20.0, alias="REQUEST_TIMEOUT_SECONDS") @lru_cache def get_settings() -> Settings: return Settings()