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).
18 lines
1 KiB
SQL
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;
|