teecup/frontend/components
Erol Haagenrud d395f86753 Update Todos
Skrive migrasjon 052 (guest_first_name/guest_last_name + backfill)

Bygge backend: splitt navn i ParticipantCreate/Update, auto-synk guest_name

Bygge backend: GET known-guest-oppslag (e-post-basert, scoped til egen bruker)

Bygge backend: retroaktiv e-post-kobling ved innlogging (auth.py)

Bygge backend: HTML-e-post-støtte i email.py (multipart/alternative)

Bygge backend: scorekort/statistikk-e-post ved complete_round (individuell + delt-ball)

Frontend: e-post-felt + navnesplitt + autofyll fra søk i AddGuestForm

Frontend: "vi kjenner igjen denne e-posten"-forslag i AddGuestForm

Scratch-verifisere hele kjeden (migrasjon+backend+frontend+e-post) end-to-end

Kjøre migrasjon mot ekte teecup_db og rulle ut (etter bekreftelse)
Alt er bygget og scratch-verifisert. Før jeg ruller ut mot ekte teecup_db, her er planen — trenger din bekreftelse per sikkerhetsregelen:

Migrasjon 052_guest_name_split.sql (rent additiv, ingen sletting):

ALTER TABLE round_participant ADD COLUMN guest_first_name text; + guest_last_name text
Backfiller eksisterende guest_name-rader ved samme "første ord/resten"-heuristikk som frontend bruker til autofyll
Deretter: docker compose up -d --build teecup_api teecup_frontend

Hva som er bygget:

E-post som valgfritt felt i "Legg til uten konto (gjest)" (fantes i backend fra før, manglet i selve skjemaet)
Navn splittet i for-/etternavn (etternavn valgfritt)
Retroaktiv kobling: spiller runder som gjest før du har konto → runden dukker opp i "Egne runder" når du logger inn med samme e-post, men teller ikke automatisk mot faktisk HCP (må bekreftes selv — unngår at en fremmed kan påvirke HCP-en din uten samtykke)
E-post med scorekort + statistikk + invitasjon sendes automatisk når runden fullføres, til enhver gjest med registrert e-post — første HTML-e-post i appen
Autofyll fra søkefeltet inn i gjesteskjemaet
"Vi kjenner igjen denne e-posten"-forslag, scoped til dine egne tidligere gjester (ikke globalt — unngår en personvernlekkasje)
2026-08-03 06:24:57 +02:00
..
ui Program-skjermen er bygget og grundig scratch-verifisert. Kort oppsummert: 2026-07-18 12:20:45 +02:00
account-settings.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
course-rounds.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
dashboard.tsx Update Todos 2026-08-03 06:24:57 +02:00
flight-group-leaderboard.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
friend-profile.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
friends.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
individual-tournament-detail.tsx Update Todos 2026-08-01 06:51:53 +02:00
install-prompt.tsx Kort: selve grunnfargen er et bevisst, ekte match. Hvordan overflatene BYGGES OPP (glass vs. flatt, boxed vs. flytende) er derimot forskjellig, og det er V0 sin egen tolkning, ikke noe hentet direkte fra dette bildet. 2026-08-01 21:15:07 +02:00
login-form.tsx Kort: selve grunnfargen er et bevisst, ekte match. Hvordan overflatene BYGGES OPP (glass vs. flatt, boxed vs. flytende) er derimot forskjellig, og det er V0 sin egen tolkning, ikke noe hentet direkte fra dette bildet. 2026-08-01 21:15:07 +02:00
more-menu.tsx Update Todos 2026-08-03 06:24:57 +02:00
new-round.tsx Update Todos 2026-08-03 06:24:57 +02:00
notifications.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
org-members.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
own-rounds.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
public-club.tsx Klubb-landingssiden er live på https://teecup.teeoff.no/clubs/{slug} — dermed er ADR-018 sine to planlagte frontend-skjermer komplette. 2026-07-18 10:48:20 +02:00
public-live.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
public-tournament.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
round-card.tsx Rundeboksen på dashboardet (og på "Egne runder"/"Spilte baner"): 2026-07-29 15:46:49 +02:00
round-detail.tsx Update Todos 2026-08-03 06:24:57 +02:00
round-header.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
round-leaderboard.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
round-page-shell.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
round-scorecard.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
round-stats.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
rounds-stats-summary.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
session-blind-draw.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
session-individual-leaderboard.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
session-scorecard.tsx Update Todos 2026-08-01 06:51:53 +02:00
sw-register.tsx Update Todos 2026-07-28 22:34:16 +02:00
team-chat.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
tournament-card.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
tournament-detail.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
tournament-leaderboard.tsx Etter første inngripen av Gemini 2026-07-29 12:44:51 +02:00
tournament-program.tsx Update Todos 2026-08-03 06:24:57 +02:00
tournament-router.tsx Nå presenterer jeg utrullingsplanen: 2026-07-30 07:55:35 +02:00
tournament-status-badge.tsx Update Todos 2026-07-19 21:51:05 +02:00
two-factor-flow.tsx Før bakgrunnsfjerning 2026-08-02 16:34:54 +02:00
verify-email-form.tsx Update Todos 2026-07-22 06:14:31 +02:00
verify-form.tsx Update Todos 2026-07-19 10:36:50 +02:00
watch-round.tsx Update Todos 2026-08-01 06:51:53 +02:00
wordmark.tsx Bygget: 2026-07-18 06:46:09 +02:00