Fase 4: Unlimited Daycare
11 user stories, 5 scenario’s + 1 edge case.
S-4.1 Supabase Pro upgrade en pg_cron
Section titled “S-4.1 Supabase Pro upgrade en pg_cron”Developer checkt of de infrastructuur voor maandelijkse facturering werkt.
Dekt: 4.1.1, 4.1.2
Voorwaarden: Supabase Pro actief ($25/maand)
- Check Supabase Pro plan actief in het dashboard
- Check pg_cron extensie beschikbaar en geactiveerd
- Maak pg_cron job aan voor maandelijkse facturering. Job schedule: draait dagelijks, checkt welke abonnementen op die dag aan verlenging toe zijn op basis van hun facturatiedag
- Test de job handmatig. Facturen worden gegenereerd voor abonnementen waarvan de facturatiedag overeenkomt met vandaag
- Check job monitoring: pg_cron logging is actief, mislukte runs zijn zichtbaar in Supabase logs
- Check dat de job geen dubbele facturen aanmaakt bij herhaald draaien op dezelfde dag
Resultaat: pg_cron werkt, maandelijkse job functioneel, monitoring en logging actief, idempotent bij herhaald draaien.
S-4.2 Klant sluit Unlimited abonnement af
Section titled “S-4.2 Klant sluit Unlimited abonnement af”Klant start een Unlimited daycare abonnement en gebruikt het.
Dekt: 4.2.1, 4.2.2, 4.2.6, 4.2.7
Voorwaarden: Klant met hond, daycare beschikbaar, klant heeft nog geen actief abonnement
- Ga naar
/bookings/new(dienst: Daycare Unlimited) of/subscriptions. Optie is niet zichtbaar als klant al een actief abonnement heeft - Kies startdatum. Facturatiedag wordt automatisch ingesteld op basis van de startdatum
- Check de maandprijs die getoond wordt: is BBO (6%) en BAZV (1,5%) inbegrepen in het maandbedrag?
- Bevestig. Eerste maandfactuur met Sentoo betaallink wordt aangemaakt en per mail verstuurd
- Betaal. Abonnement wordt actief
- Boek daycare op
/bookings/new. Optie “Daycare Unlimited” is zichtbaar (alleen bij actief abonnement). Geen factuur, geen betaling nodig - Bekijk abonnementsdetails op
/subscriptions: startdatum, maandprijs, volgende betaaldatum, status (actief) - End-of-month test: stel facturatiedag is 31. Wat gebeurt er in februari (28/29 dagen)? Check dat het systeem correct omgaat met maanden die korter zijn dan de facturatiedag
- Volgende maand: controleer dat pg_cron automatisch factuur + Sentoo betaallink genereert en per mail verstuurt
Resultaat: Abonnement actief, daycare gratis bij actief abonnement, maandprijs en belasting transparant, end-of-month handling correct, maandelijkse facturering automatisch.
S-4.3 Betaalescalatie bij Unlimited
Section titled “S-4.3 Betaalescalatie bij Unlimited”Systeem escaleert bij niet-betaling van maandfactuur.
Dekt: 4.2.3
Voorwaarden: Unlimited abonnement actief, maandfactuur onbetaald
- Dag 3 na factuurdatum (dus dag 4 na aanmaak): check dat herinnerings-email automatisch verstuurd wordt naar klant met openstaande factuur en Sentoo betaallink
- Dag 7 na factuurdatum: check tweede herinnering met dringender toon en waarschuwing dat abonnement geblokkeerd kan worden
- Dag 14 na factuurdatum: check dat admin een notificatie ontvangt. Admin kan beslissen: nog een herinnering sturen, abonnement pauzeren, of contact opnemen met klant
- Check dat het systeem het abonnement niet automatisch blokkeert (dat is een handmatige admin-beslissing)
Resultaat: Escalatie op correcte momenten (dag 3, 7, 14 na factuurdatum), admin geinformeerd op dag 14, geen automatische blokkering.
S-4.4 Abonnement opzeggen en pauzeren
Section titled “S-4.4 Abonnement opzeggen en pauzeren”Klant en admin kunnen een Unlimited abonnement opzeggen of pauzeren.
Dekt: 4.2.4, 4.2.5
Voorwaarden: Actief Unlimited abonnement
- Klant opzeggen op
/subscriptions: klik “Opzeggen” knop - Bevestigingsdialoog verschijnt met tekst: “Er vindt geen restitutie plaats voor de lopende maand.”
- Na bevestiging: status wijzigt naar “opgezegd”. Abonnement blijft actief tot het einde van de huidige betaalperiode
- Check: na einde betaalperiode wordt abonnement definitief stopgezet. Klant ontvangt bevestigingsmail
- Check: geen nieuwe maandfactuur volgende maand
- Check: na opzeggen kan klant geen “Daycare Unlimited” meer boeken (optie niet zichtbaar), maar wel losse daycare of Paw Voucher
- Admin pauzeren op
/admin/subscriptions/[id]: klik “Pauzeren” - Check: geen facturering tijdens pauze, klant kan geen Unlimited daycare boeken (optie niet zichtbaar)
- Admin heractiveren: klik “Heractiveren” op
/admin/subscriptions/[id]. Abonnement wordt weer actief - Admin opzeggen namens klant op
/admin/subscriptions/[id]: klik “Opzeggen”. Geen restitutie, openstaande facturen blijven verschuldigd, klant ontvangt notificatie - Klant met gepauzeerd abonnement probeert daycare te boeken: optie “Daycare Unlimited” is niet zichtbaar, klant wordt niet geblokkeerd voor andere betaalopties
Resultaat: Opzeggen actief tot einde betaalperiode, pauzeren en heractiveren werkt, gepauzeerd abonnement blokkeert Unlimited maar niet andere opties.
S-4.5 Admin abonnementenbeheer
Section titled “S-4.5 Admin abonnementenbeheer”Admin overziet alle abonnementen en factuurhistorie.
Dekt: 4.3.1, 4.3.2
Voorwaarden: Meerdere Unlimited abonnementen in het systeem
- Ga naar
/admin/subscriptions. Overzicht per abonnement: klant, hond, status (actief/gepauzeerd/opgezegd), startdatum, volgende betaaldatum, openstaande maandfacturen (ja/nee met bedrag) - Check filters: status (actief/gepauzeerd/opgezegd) en openstaande facturen (ja/nee)
- Check dat abonnementen met openstaande facturen bovenaan staan
- Open specifiek abonnement op
/admin/subscriptions/[id]. Bekijk factuurhistorie per maand: factuurnummer, factuurdatum, bedrag, betaalstatus (betaald/openstaand/verlopen), betaalmethode (Sentoo/cash/pin), betaaldatum - Klik door naar factuurdetails op
/admin/invoices/[id]om herinnering te sturen of factuur handmatig als betaald te markeren
Resultaat: Overzicht compleet met filters, openstaande facturen prioriteit, factuurhistorie per abonnement beschikbaar met doorklik.
Edge cases
Section titled “Edge cases”EC-14 Unlimited + Voucher conflict
Section titled “EC-14 Unlimited + Voucher conflict”Klant heeft zowel Unlimited abonnement als Paw Voucher actief.
Versterkt: S-4.2, S-3.9
- Klant heeft actief Unlimited + voucher met 5 credits
- Boek daycare op
/bookings/new. Check welke betaalopties getoond worden vanuit het perspectief van de klant. Unlimited heeft voorrang: optie “Daycare Unlimited” wordt getoond, niet “Daycare Paw Voucher” - Check dat voucher credits niet worden afgetrokken bij een Unlimited boeking
- Klant zegt Unlimited op. Na einde betaalperiode: volgende boeking toont weer “Daycare Paw Voucher” als optie (mits saldo > 0)
- Unlimited met onbetaalde maandfactuur: optie “Daycare Unlimited” is niet zichtbaar. Klant kan wel boeken via voucher of regulier
- Check of er een daily limit is voor Unlimited daycare (bijv. max 1 bezoek per dag per hond). Kan een klant 2x op dezelfde dag boeken?
Resultaat: Duidelijke prioriteit (Unlimited > Voucher > Regulier), geen dubbele afschrijving, daily limit gedefinieerd.