teecup/app/routers
Erol Haagenrud dd8a8c133d Offline kommentar-/bildeposting i rundefeeden (ADR-069)
Utvider den eksisterende offline-skrivekøen (ADR-028, hittil kun
hull-scoreføring) til også å dekke rundefeedens kommentarer/bilder.
offline-queue.ts fikk et isMultipart-flagg (Blob-verdier lagres nativt
i IndexedDB, flushQueue bygger FormData ved synk). round-messages.tsx
fikk sin egen isolerte kø (matchId scoped til "{roundId}:messages",
ikke bare roundId) og et optimistisk "Venter på synk"-kort.

Migrasjon 073: round_message.client_message_id (nullbar uuid) + delvis
unik indeks -- POST /messages er ulikt hull-score-PATCH IKKE naturlig
idempotent, så en avbrutt synk kunne duplisert en kommentar uten dette.
Klienten sender en selvgenerert id ved både første forsøk og et evt.
køet gjenforsøk; serveren deduplikerer på den.

Se ARCHITECTURE_DECISIONS.md (ADR-069) og CHANGELOG.md (punkt 85) for
full begrunnelse og verifiseringslogg (inkl. et reload-mens-offline-
scenario som beviser fravær av duplikater).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-14 11:51:30 +02:00
..
__init__.py Alle "oppsett"-endepunktene fra planen er bygget og verifisert for ekte mot scratch-databasen (fersk teecup_scratch, 001→002→003, container med pip install + uvicorn, curl gjennom hele flyten, deretter fullstendig opprydding). 2026-07-16 09:16:22 +02:00
auth.py 13-årsgrense — håndhevet server-side (eneste vei inn i appen, ADR-051) og med umiddelbar rød feilmelding klientside i begge profil-skjemaer. Testet på nøyaktig dagsgrensen. 2026-08-10 07:00:11 +02:00
courses.py Per-deltaker-fullføring av runder + scorekort på e-post; Larvik/Nesbyen via GolfAPI 2026-08-13 21:24:25 +02:00
friends.py Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
individual_tournaments.py Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
matches.py All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
messaging.py 13-årsgrense — håndhevet server-side (eneste vei inn i appen, ADR-051) og med umiddelbar rød feilmelding klientside i begge profil-skjemaer. Testet på nøyaktig dagsgrensen. 2026-08-10 07:00:11 +02:00
notifications.py Alt kompilerer rent. Oppsummering av denne runden: 2026-08-10 18:34:31 +02:00
order_of_merit.py Bygg Order of Merit: sesong-sammenlagt spillerrangering på tvers av turneringer 2026-08-04 14:19:30 +02:00
organizations.py Update Todos 2026-07-19 10:36:50 +02:00
players.py 13-årsgrense — håndhevet server-side (eneste vei inn i appen, ADR-051) og med umiddelbar rød feilmelding klientside i begge profil-skjemaer. Testet på nøyaktig dagsgrensen. 2026-08-10 07:00:11 +02:00
registration.py Update Todos 2026-07-22 05:46:47 +02:00
round_messages.py Offline kommentar-/bildeposting i rundefeeden (ADR-069) 2026-08-14 11:51:30 +02:00
rounds.py Flaggturnering: GPS-flaggplanting (Del A) + kartoversikt (Del B) 2026-08-14 10:38:54 +02:00
scoring.py Optimistisk versjonssjekk for org-turneringers match-scoring 2026-08-10 23:19:29 +02:00
tournaments.py Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00