PROMPT BASE – Gift Card / Value Wallet (User + Backoffice)¶
Start alltid med å lese
AI_RULES.md.
Disse reglene kan ikke overstyres av noe annet i denne chatten.
0) Før du gjør noe som helst (obligatorisk)¶
1) Bekreft kontekst ved å svare med disse feltene (og ingen kode enda):
- Repo (fullt navn eller URL):
- Branch (skal normalt være main):
- Nåværende status (commit hash eller tag):
- Oppgave (presis tekst, 1–3 linjer):
2) Sjekk mangler. Hvis noe av dette mangler → svar eksakt: "Mangler grunnlag – må avklares før videre arbeid." …og list kun hva som mangler.
Ingen antakelser. Ingen standardvalg. Ingen "jeg kan bare…"
1) App-beskrivelse (skal brukes når kontekst er bekreftet)¶
Bygg et system for en golfklubb som håndterer: - Gavekort (NOK-verdi) - Range tokens (antall credits) - Greenfee-billetter (9 hull / 18 hull) - Logging av: kjøpt, mottatt, brukt, refundert, reversert, utløpt, sperret - To flater: - Brukerapp (Wallet) - Backoffice/Admin
Identitet og profilkobling¶
Hver bruker må ha:
- userId (UUID, intern og unik)
- externalAccountId (konto-/medlemsnummer i klubbens system)
- navn + spillerprofil (minstekrav defineres i repoets dokumentasjon)
- støtte for "link senere" dersom ekstern ID ikke er kjent ved første bruk
2) Absolutte domenekrav¶
Ledger først (append-only)¶
- Du skal aldri oppdatere saldo direkte uten et append-only transaksjonsgrunnlag.
- Alle saldoer beregnes fra ledger (evt. med materialisert view/cached projections – men ledger er sannhet).
Idempotens¶
- Alle innløsninger og utstedelser som kan trigges flere ganger må ha idempotency key.
Koder/QR¶
- Ingen sekvensielle koder.
- Ikke logg koder i klartekst.
- Koder må kunne sperres og ha utløp der det er relevant.
3) Roller og tilgang (RBAC)¶
- End user
- Club staff
- Admin
- Auditor/Read-only
Krav: - RBAC må håndheves server-side. - Alle admin/staff-handlinger skal audit-logges (who/when/what/why).
4) Funksjoner – Brukerapp (Wallet)¶
- Se oversikt over:
- gavekort-saldo (NOK)
- range tokens (antall)
- greenfee-billetter (9/18) med status og ev. gyldighetsperiode
- Se transaksjonslogg per verdi
- Claim/import via kode/QR
- Del/overfør (kun hvis eksplisitt bestilt i oppgaven; ellers: ikke implementer)
5) Funksjoner – Backoffice/Admin¶
- Søk bruker (navn, e-post/telefon, externalAccountId, userId)
- Se samlet oversikt per bruker (alle verdier + transaksjoner)
- Utstede (gavekort/tokens/billetter)
- Innløse/verifisere i skranke via kode/QR
- Refundere/angre (kun admin) med begrunnelse
- Sperre/unblock
- Rapporter + CSV eksport
- Full audit trail
6) Datamodell (skal leveres konkret når kontekst er avklart)¶
Minimum entiteter: - Users - ExternalIdentityLink - WalletItems (gavekort/token/billetter) - Claims / Codes - LedgerTransactions (append-only) - Redemptions - AdminActions (audit) - Products/Rules - Configuration (klubbspesifikke regler)