mirror of
https://github.com/complexcaresolutions/dak.c2s.git
synced 2026-03-17 20:43:41 +00:00
- Initialize project structure with backend/app/ package layout - Add FastAPI app with CORS middleware and health check endpoint - Add Pydantic Settings config with DB, JWT, SMTP, and app settings - Add SQLAlchemy database engine and session management - Add requirements.txt with all dependencies (FastAPI, SQLAlchemy, Alembic, etc.) - Add .env.example template and .gitignore - Add empty frontend/ and backend test scaffolding - Include project specification and design/implementation plans Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
# backend/app/config.py
|
|
from pydantic_settings import BaseSettings
|
|
from functools import lru_cache
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# Database
|
|
DB_HOST: str = "localhost"
|
|
DB_PORT: int = 3306
|
|
DB_NAME: str = "dak_c2s"
|
|
DB_USER: str = "dak_c2s_admin"
|
|
DB_PASSWORD: str = ""
|
|
|
|
# JWT
|
|
JWT_SECRET_KEY: str = "change-me-in-production"
|
|
JWT_ALGORITHM: str = "HS256"
|
|
ACCESS_TOKEN_EXPIRE_MINUTES: int = 15
|
|
REFRESH_TOKEN_EXPIRE_DAYS: int = 7
|
|
|
|
# SMTP
|
|
SMTP_HOST: str = "smtp.complexcaresolutions.de"
|
|
SMTP_PORT: int = 465
|
|
SMTP_USER: str = "noreply@complexcaresolutions.de"
|
|
SMTP_PASSWORD: str = ""
|
|
SMTP_FROM: str = "noreply@complexcaresolutions.de"
|
|
|
|
# App
|
|
APP_NAME: str = "DAK Zweitmeinungs-Portal"
|
|
CORS_ORIGINS: str = "http://localhost:5173,https://dak.complexcaresolutions.de"
|
|
MAX_UPLOAD_SIZE: int = 20971520 # 20MB
|
|
|
|
@property
|
|
def database_url(self) -> str:
|
|
return (
|
|
f"mysql+pymysql://{self.DB_USER}:{self.DB_PASSWORD}"
|
|
f"@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset=utf8mb4"
|
|
)
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
env_file_encoding = "utf-8"
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
return Settings()
|