30 lines
849 B
Python

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()