Skip to content

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)