from pathlib import Path from pydantic import BaseModel, field_validator # Build paths BASE_DIR = Path(__file__).resolve().parent.parent.parent class Settings(BaseModel): PROJECT_NAME: str = "Barebones Todo API" API_V1_STR: str = "/api/v1" # SQLite Database settings DB_DIR: Path = BASE_DIR / "storage" / "db" SQLALCHEMY_DATABASE_URL: str = f"sqlite:///{DB_DIR}/db.sqlite" @field_validator("SQLALCHEMY_DATABASE_URL") def validate_db_url(cls, v, values): # Ensure directory exists db_dir = values.data.get("DB_DIR") if db_dir: db_dir.mkdir(parents=True, exist_ok=True) return v # Load settings from environment variables model_config = { "env_file": ".env", "case_sensitive": True, } # Create settings instance settings = Settings()