from pathlib import Path from pydantic_settings import BaseSettings from typing import Optional class Settings(BaseSettings): # Application settings PROJECT_NAME: str = "Task Management API" PROJECT_DESCRIPTION: str = "A simple task management API using FastAPI and SQLite" VERSION: str = "0.1.0" API_PREFIX: str = "/api" # Database settings DB_DIR: Path = Path("/app") / "storage" / "db" SQLALCHEMY_DATABASE_URL: Optional[str] = None class Config: env_file = ".env" env_file_encoding = "utf-8" case_sensitive = True def __init__(self, **kwargs): super().__init__(**kwargs) # Ensure database directory exists self.DB_DIR.mkdir(parents=True, exist_ok=True) # Set database URL if not provided if not self.SQLALCHEMY_DATABASE_URL: self.SQLALCHEMY_DATABASE_URL = f"sqlite:///{self.DB_DIR}/db.sqlite" settings = Settings()