# Backend — Föräldraledigplannerare FastAPI + Python 3.14, packages managed with `uv`. Layered architecture (entities → repositories → services → routers) with dependency injection so the database backend (SQLite now, Postgres later) is swappable. ## Setup ```bash uv sync # install deps (incl. dev group) uv run uvicorn app.main:app --reload # run dev server on :8000 uv run pytest # run tests with coverage uv run ruff check . # lint ``` ## Layout ``` app/ config.py # pydantic-settings (app config + frozen LeaveRules) dependencies.py # DI factories (pick repo impl by settings.database_type) entities/ # plain dataclasses (domain) models/ # pydantic API schemas repositories/ # abstract interfaces repositories_impl/ # concrete impls per backend (sqlite/, postgres/) services/ # business logic routers/ # FastAPI routes db/connection.py # connection + (dev) schema bootstrap utils/ # errors, logger ``` ## Reference vertical slice `VacationDays` is implemented end-to-end (entity → schema → repo interface → SQLite impl → service → router → tests). **Copy this slice** when adding a new entity. See `JUNIOR_ONBOARDING.md` in the repo root for task-by-task guidance. > The inline schema in `db/connection.py` exists only so dev/tests are > self-contained. Production schema is owned by Alembic migrations (a senior task).