from pathlib import Path from pydantic import BaseModel from pydantic_settings import BaseSettings, SettingsConfigDict BASE_DIR = Path(__file__).parent.parent print(BASE_DIR) DB_PATH = BASE_DIR / "db/taskncoffee.db" class ApiV1Prefix(BaseModel): prefix: str = "/v1" auth: str = "/auth" users: str = "/users" class ApiPrefix(BaseModel): prefix: str = "/api" v1: ApiV1Prefix = ApiV1Prefix() class DbSettings(BaseModel): url: str = f"sqlite+aiosqlite:///{DB_PATH}" class AccessToken(BaseSettings): model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", env_prefix="ACCESS_TOKEN_" ) expire_minutes: int = 15 secret_key: str algorithm: str = "HS256" class Settings(BaseSettings): api: ApiPrefix = ApiPrefix() db: DbSettings = DbSettings() access_token: AccessToken = AccessToken() settings = Settings() print(settings.db.url)