f1d5882596
- Frontend : Next.js 14 App Router, TypeScript strict, Tailwind 3, shadcn/ui, next-intl (fr/en) - Backend : FastAPI, SQLAlchemy 2 async, Alembic, Pydantic 2, Python 3.11 - Infrastructure : Docker Compose (PostgreSQL 16 + Ollama) - Tooling : ESLint + Prettier (frontend), Ruff (backend), pytest - Structure complète des dossiers avec pages et routers placeholder
31 lines
811 B
Python
31 lines
811 B
Python
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
postgres_host: str = "localhost"
|
|
postgres_port: int = 5432
|
|
postgres_db: str = "cvp"
|
|
postgres_user: str = "cvp"
|
|
postgres_password: str = "cvp_dev_password"
|
|
|
|
france_travail_client_id: str = ""
|
|
france_travail_client_secret: str = ""
|
|
|
|
adzuna_app_id: str = ""
|
|
adzuna_app_key: str = ""
|
|
|
|
ollama_base_url: str = "http://localhost:11434"
|
|
ollama_model: str = "phi3:mini"
|
|
|
|
model_config = {"env_file": ".env", "env_file_encoding": "utf-8"}
|
|
|
|
@property
|
|
def database_url(self) -> str:
|
|
return (
|
|
f"postgresql+asyncpg://{self.postgres_user}:{self.postgres_password}"
|
|
f"@{self.postgres_host}:{self.postgres_port}/{self.postgres_db}"
|
|
)
|
|
|
|
|
|
settings = Settings()
|