-- ===================================================================== -- TeeCup — Idempotens for kommentar-posting via offline-kø (ADR-028- -- tillegget "kommentarer/bilder offline", 2026-08-14, migrasjon 073). -- -- Hull-score-køen (ADR-028) er trygg å synke på nytt fordi PATCH + -- expected_version konvergerer uansett hvor mange ganger den gjentas. -- POST /rounds/{id}/messages er IKKE naturlig idempotent -- hvert kall -- oppretter en ny rad. En avbrutt synk (nettleseren lukkes midt i et -- flush-kall, eller samme kø flushes fra to faner) kunne dermed skrevet -- samme kommentar to ganger. Løsning: klienten sender en selvgenerert -- `client_message_id` (crypto.randomUUID()); et gjentatt kall med samme -- id returnerer den allerede opprettede meldingen i stedet for å -- opprette en duplikat (se app/routers/round_messages.py:: -- post_round_message). -- ===================================================================== \set ON_ERROR_STOP on ALTER TABLE round_message ADD COLUMN client_message_id uuid; -- Delvis unik indeks (kun når feltet faktisk er satt) -- eldre/andre -- kallere som ikke sender client_message_id er upåvirket, samme -- "None = ikke i bruk"-konvensjon som resten av appen. CREATE UNIQUE INDEX round_message_client_id_idx ON round_message (round_id, client_message_id) WHERE client_message_id IS NOT NULL;