diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 760a9a7..ec47b89 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -231,7 +231,16 @@ "Bash(python3 -m py_compile app/routers/courses.py app/main.py)", "Bash(pnpm --version)", "Bash(corepack --version)", - "Bash(corepack pnpm *)" + "Bash(corepack pnpm *)", + "Bash(curl -s -o /dev/null -w \"teecup.teeoff.no/health -> %{http_code}\\\\n\" https://teecup.teeoff.no/health)", + "Bash(curl -s -o /dev/null -w \"teecup.teeoff.no/dashboard -> %{http_code}\\\\n\" https://teecup.teeoff.no/dashboard)", + "Bash(curl -s -o /dev/null -w \"teeoff.no -> %{http_code}\\\\n\" https://teeoff.no/)", + "Bash(cd /opt/teeoff && ls && echo --- && find . -iname \"*.md\" -not -path \"*/node_modules/*\" | head -50)", + "Bash(cd /opt/teeoff && find backend -iname \"*.md\" -o -iname \"openapi*\" -o -iname \"swagger*\" 2>/dev/null; echo ---; find backend -maxdepth 3 -type d | grep -v node_modules; echo ---; find backend -iname \"*rout*\" -not -path \"*/node_modules/*\")", + "Bash(cd /opt/teeoff/backend && ls -la; echo ---; find . -maxdepth 2 -type f | grep -v node_modules)", + "Read(//opt/teeoff/backend/**)", + "Bash(cd /opt/teeoff/backend && grep -n \"app\\\\.\\\\\\(get\\\\|post\\\\|put\\\\|delete\\\\|patch\\\\\\)\\\\|@app\\\\.\\\\|APIRouter\\\\|router\\\\.\\\\\\(get\\\\|post\\\\\\)\" main.py | grep -i \"facilit\\\\|course\\\\|club\" )", + "Bash(cd /opt/teeoff && grep -n \"CREATE TABLE.*\\\\\\(courses\\\\|tees\\\\|holes\\\\|hole_lengths\\\\|facilities\\\\\\)\\\\b\" schema.sql init.sql 2>/dev/null)" ], "additionalDirectories": [ "/opt/teeoff/deploy", diff --git a/CLAUDE.md b/CLAUDE.md index 4be5d55..bb99967 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -703,13 +703,32 @@ Ferdig og verifisert: full-reverts, ikke rørt. Fjernet V0s dev-only forhåndsvisnings-toggle; lagt til fanerad ("Lag og spillere" / "Program") i BEGGE skjermene siden V0 ikke visste om den andre når den ble generert i egen prompt. - **IKKE rullet ut live ennå** — venter på brukerens bekreftelse (ingen - migrasjon denne runden, men ny backend-/frontend-kode krever - `docker compose up -d --build` mot ekte containere). + **Rullet ut live 2026-07-18**, bruker bekreftet eksplisitt: `docker + compose up -d --build teecup_api teecup_frontend` (kun disse to, `teecup- + minio` urørt). Verifisert: begge containere boot-et rent (`Application + startup complete`, Next.js `Ready`), `teecup.teeoff.no/health` og + `/dashboard` → 200, `teeoff.no` upåvirket (200). +- **ADR-004 (teeoff-banedata) kartlagt, IKKE bygget (2026-07-18):** brukeren + påpekte rett etter program-skjerm-rullingen at ADR-004s teeoff- + integrasjon fortsatt bare er vedtatt, ikke bygget (kun `source='custom'` + finnes). Kartlagt `/opt/teeoff/backend/main.py` (annet repo, kun lest): + `GET /api/facilities/{slug}` (offentlig, INGEN auth/API-nøkkel) returnerer + allerede alt teecup trenger — `courses[].holes[]` (`par`, `hcp_index` + = stroke index), `courses[].tees[]` (`name`, `cr_men`/`slope_men`, + `cr_women`/`slope_women` — kjønnsdelt WHS-rating). CORS-lista på teeoff- + siden ekskluderer teecups origin, men er IRRELEVANT for et server-til- + server-kall (kun nettleser-fetch rammes av CORS). Ingen dokumentasjon + (README/OpenAPI) finnes for dette API-et i teeoff-repoet — kartleggingen + over er basert på å lese koden direkte. Stabil identifikator: `facilities. + slug` (f.eks. `borregaard-golfklubb`) — selve banen har kun en intern + serial-id, ingen egen slug, så `course.external_course_ref` må bære + facility-slug + bane-id sammen. **Ikke scopet eller bygget ennå** — egen, + senere avklaring med bruker om omfang (import-flyt vs. live-oppslag hver + gang, hvor mye av bane-/tee-/hull-detaljene som skal kopieres inn i + `teecup_db` vs. slås opp on-demand). Neste steg: -1. Rulle program-skjermen live (venter på bekreftelse). -2. Flere V0-skjermer (blind draw, scorekort, leaderboard) — samme mønster: +1. Flere V0-skjermer (blind draw, scorekort, leaderboard) — samme mønster: design i V0 (fortsett i samme prosjekt), FORVENT en full re-eksport hver gang — diff mot live-treet i et scratch-område før noe pakkes ut over eksisterende filer, og sjekk om V0-skjermen bygger inn handlinger backend diff --git a/FEATURE_BACKLOG.md b/FEATURE_BACKLOG.md index 2779df4..dee8719 100644 --- a/FEATURE_BACKLOG.md +++ b/FEATURE_BACKLOG.md @@ -25,7 +25,7 @@ | Dedikert app-rolle (ingen superuser/BYPASSRLS) | ✅ | migrasjon 002. | | API: oppsett (spillere/lag/roster/økter/matcher/blind draw) | ✅ | Verifisert for ekte mot scratch-db + engangscontainer. | | API: scoring (hole_score/match_hole_result, matchstatus, handicap-beregning) | ✅ | ADR-012/014. Verifisert for ekte, inkl. fourball better-ball og race-sikker recompute. | -| Banedata fra teeoff via API | 🔀 | ADR-004. Endret fra Geminis «delt database direkte». | +| Banedata fra teeoff via API | 🔀 | ADR-004. Endret fra Geminis «delt database direkte». **Kartlagt 2026-07-18** (ikke bygget ennå): `GET /api/facilities/{slug}` i `/opt/teeoff/backend/main.py` er offentlig, uten auth, og har allerede alt vi trenger — navn, hull med par+hcp_index, tee-navn, course/slope rating per tee (kjønnsdelt). Ingen CORS/API-nøkkel-hinder siden dette blir et server-til-server-kall, ikke nettleser. Se program-skjerm-runden i CLAUDE.md-status for full kartlegging. | | Konfigurerbar handicap-pipeline (4 brytere) | ✅ | ADR-014. Bygget i `app/handicap.py`, brukt av scoring-runden. | | Ekte autentisering (magic-link + JWT-sesjon) | ✅ | ADR-009. `app/routers/auth.py` + migrasjon `004_auth.sql`. `X-Debug-User-Id`-stubben er helt fjernet. | | RLS-tomstreng-fiks (`app_current_org()`) | ✅ | Migrasjon `005_rls_null_guard.sql`. Se detaljer under. | @@ -496,9 +496,9 @@ lagt til en fanerad ("Lag og spillere" / "Program") i BÅDE `tournament-detail.tsx` og den nye skjermen, siden V0 ikke visste om den andre skjermen når den ble generert i en egen prompt. -**Ikke rullet ut live ennå** — venter på brukerens bekreftelse (ingen -migrasjon denne runden, men ny backend-kode + frontend-kode krever -`docker compose up -d --build` mot ekte `teecup_api`/`teecup_frontend`). +**Rullet ut live 2026-07-18**, bruker bekreftet eksplisitt: begge containere +(`teecup_api`, `teecup_frontend`) bygget og redeployet, live sjekker OK +(`/health`, `/dashboard` → 200), `teeoff.no` upåvirket. ---