Forslag: Forbedret kundekort med permanente rettigheter¶
1. Problem¶
Dagens system behandler hver booking isolert. Kundespesifikke rettigheter som gir rabatt (legeerklæring) eller gratis leie (abonnement) må legges inn manuelt for hver eneste booking. Dette er ineffektivt, feilutsatt og skalerer ikke.
2. Mål¶
Etablere et sentralt "kundekort" i databasen hvor permanente og tidsstyrte rettigheter kan lagres. Dette vil automatisere prisberegningen og redusere manuelt arbeid for ProShop/admin.
Dette inkluderer to konkrete funksjoner: 1. Permanent legeerklæring: Kundens legeerklæring-status skal "huskes" av systemet. 2. Abonnement: Kunder skal kunne ha et tidsstyrt abonnement som gir gratis leie.
3. Løsningsforslag¶
Løsningen er tredelt: utvide datamodellen, bygge admin-verktøy for å administrere rettighetene, og oppdatere bookinglogikken til å bruke dem.
Steg 1: Utvidet datamodell for kunde¶
Vi utvider kundedokumentet i members/{id} med to nye felt:
{
"name": "Kari Nordmann",
"email": "kari.nordmann@example.com",
"golfboxId": "73-12345", // Primær, ikke-redigerbar ID. Fremtidig oppslagsfelt mot GolfBox API.
// Felt 1: Permanent legeerklæring
"hasDoctorsNote": true,
// Felt 2: Tidsstyrt abonnement
"subscription": {
"type": "half_year_jul_dec",
"validFrom": "2026-07-01",
"validTo": "2026-12-31"
}
}
hasDoctorsNote: Enboolean. Hvistrue, gis rabatt.subscription: Et objekt. Hvis det finnes og er gyldig for bookingdatoen, blir prisen 0 kr. Hvis ikke, er feltetnull.
Steg 2: Admin-verktøy for "Kundekort"¶
På "Kunder"-siden i admin-portalen utvikler vi en detaljvisning for hver kunde.
Visuell beskrivelse (Admin/ProShop):
Kundekort: Kari Nordmann
* GolfBox ID: 73-12345 (Ikke-redigerbar)
* ...andre kundefelt (navn, e-post, etc.)
Her kan clubAdmin og proShop:
-
Håndtere Legeerklæring:
- En enkel checkbox:
[x] Har legeerklæring. - Lagring oppdaterer
hasDoctorsNote-feltet på kundens dokument.
- En enkel checkbox:
-
Håndtere Abonnement:
- En seksjon som viser aktivt abonnement og gyldighetsperiode.
- En knapp for
[ Legg til nytt abonnement ]åpner en dialog. - I dialogen velger admin abonnementstype fra en liste:
MånedHalvår (jan-jun)Halvår (jul-des)
- Systemet setter
validFromogvalidToautomatisk basert på valget. - En
[ Fjern ]-knapp settersubscriptiontilnull.
Steg 3: Oppdatert prislogikk i bookingflyten¶
Når en kunde identifiseres i bookingflyten, hentes kundekortet fra databasen. Prisberegningen følger et nytt, strengt hierarki:
-
Sjekk Abonnement: Har kunden et
subscription-objekt, og er bookingdatoen innenforvalidFrom/validTo?- Ja? Pris settes til 0 kr. Gå ikke videre.
- UI-krav: I kundeportalen skal prisen bare vises som "0 kr" uten forklaring. I admin/proshop-portalen skal det stå "0 kr (Abonnement)" for å gi kontekst til de ansatte.
-
Sjekk Legeerklæring: Er
hasDoctorsNotesatt tiltrue?- Ja? Standard rabattpris for legeerklæring benyttes. UI viser "Rabatt for legeerklæring" (dette er OK for både kunde og admin). Gå ikke videre.
-
Standardpris: Hvis ingen av de overnevnte slår til, benyttes standardprisen for 9/18 hull.
Denne løsningen gir et solid og fremtidsrettet fundament for all kundespesifikk logikk.