Systemet til håndtering af Fælles Vinindkøb
Find a file
carsten 3592fbf845 Opgave 9: admin-ordreoversigt + "markér betalt"
GET /orders (filtre: purchase_round_id, route_id, payment_status)
giver admin en oversigt pr. ordre med deltagerinfo, vinlinjer og
beregnet total. POST /orders/{id}/mark-paid registrerer betalingen
(payment_status=paid, paid_at) og udløser mail-event #3
(payment_confirmed) — afviser med 409 hvis ordren allerede er betalt.

Udtrukket render/send/log-logikken fra 8a's _send_order_confirmation
til en delt app/services/order_mail.py::send_order_event_mail,
parameteriseret over MailEventType, så order_confirmed og
payment_confirmed ikke længere duplikerer den samme kode. Som med
order_confirmed er mail-afsendelsen best-effort: en manglende
skabelon eller afsenderkonfiguration blokerer aldrig selve
betalingsregistreringen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 00:03:45 +02:00
app Opgave 9: admin-ordreoversigt + "markér betalt" 2026-09-29 00:03:45 +02:00
migrations Opgave 8b: domænebaseret rute-opløsning + tilmeldings-endpoint 2026-09-28 22:34:27 +02:00
scripts Add one-off participant import script for legacy MongoDB data 2026-09-27 19:16:26 +02:00
.env.example Add Postal webhook receiver for delivery status (task 7c) 2026-09-28 20:50:24 +02:00
.gitignore Add mail template CRUD (task 7a), per-route and per-event-type 2026-09-28 19:43:47 +02:00
.python-version Scaffold FastAPI + SQLModel + Alembic project, Postgres-backed 2026-09-27 15:57:44 +02:00
alembic.ini Scaffold FastAPI + SQLModel + Alembic project, Postgres-backed 2026-09-27 15:57:44 +02:00
CLAUDE.md Opgave 9: admin-ordreoversigt + "markér betalt" 2026-09-29 00:03:45 +02:00
pyproject.toml Add Postal webhook receiver for delivery status (task 7c) 2026-09-28 20:50:24 +02:00
README.md Scaffold FastAPI + SQLModel + Alembic project, Postgres-backed 2026-09-27 15:57:44 +02:00
uv.lock Add Postal webhook receiver for delivery status (task 7c) 2026-09-28 20:50:24 +02:00

Vinindkøb v2

Admin-backend til fælles vinindkøb (FastAPI + SQLModel + PostgreSQL + Alembic). Se CLAUDE.md for projektplan og datamodel.

Kom i gang

uv sync
cp .env.example .env   # udfyld DATABASE_URL med din egen Postgres-instans
uv run alembic upgrade head
uv run fastapi dev app/main.py

GET /health bekræfter at appen kan nå databasen.