teecup/019_profile_country_bio.sql
Erol Haagenrud 79c4406723 Update Todos
Skriv migrasjon 019 (app_user.country + bio)

Backend: profile_complete-felt, ProfileUpdate country/bio/HCP-cap

Frontend: onboarding-visning i /account, gate i page.tsx + dashboard.tsx

Scratch-verifiser hele flyten

Be om bekreftelse og rull ut live
Scratch-verifisert, alt grønt:

Migrasjon 019 kjørte rent (001→019), test_isolation.sql 12/12 uendret.
16/16 backend-sjekker: fersk konto starter profile_complete: false, delvis utfylling forblir ufullstendig, HCP >54 avvist (422), full utfylling (inkl. HCP=54) gir profile_complete: true, beskrivelse er reelt valgfri, å nullstille et obligatorisk felt i etterkant slår profile_complete tilbake til false, full isolasjon mellom to kontoer.
Ekte produksjonsbuild av frontend kompilerte rent, alle 16 ruter listet.
Ekte HTTP-nivå-bevis mot en kjørende produksjonscontainer: anonym mot / → 200 (innloggingsskjema), en ekte innlogget-men-ufullstendig sesjonscookie mot / → 307 → /account.
Klar for ekte teecup_db. Dette krever:

Kjøre 019_profile_country_bio.sql mot ekte teecup_db (kun to nye nullable kolonner på app_user — additivt, ingen eksisterende rader berørt).
docker compose up -d --build teecup_api teecup_frontend.
Verdt å merke: med dette rullet ut vil både hei@erol.no og erol.haagenrud@envide.no bli sendt til profil-fullføring ved neste innlogging — ingen av kontoene har disse feltene utfylt i dag (bekreftet med spørringen tidligere).
2026-07-22 07:53:29 +02:00

18 lines
1 KiB
SQL

-- =====================================================================
-- TeeCup — land + beskrivelse på personlig profil (migrasjon 019)
-- =====================================================================
-- Oppfølging av ADR-031 sin personlige profil (migrasjon 015): brukeren
-- ba om et obligatorisk "land"-felt og et valgfritt "beskrivelse"-felt
-- som del av den obligatoriske profil-fullføringen ved første innlogging
-- (se CLAUDE.md-status). Samme mønster som resten av `app_user`-profilen
-- -- nullable kolonne, "obligatorisk" håndheves i app-laget
-- (`profile_complete` i /auth/me), ikke som en DB NOT NULL-constraint
-- (unngår å bryte eksisterende kontoer som ennå ikke har fylt inn feltet).
-- `country` er fri tekst, samme design som det allerede eksisterende
-- org-scopede `player.country` (migrasjon 007) -- ingen fast landliste.
-- =====================================================================
\set ON_ERROR_STOP on
ALTER TABLE app_user ADD COLUMN country text;
ALTER TABLE app_user ADD COLUMN bio text;