Skip to content

feat(support): onboardinglijst gelijk aan de app + wizardstatus - #53

Merged
onder-ates merged 1 commit into
mainfrom
feat/support-lijst-gelijk-aan-app
Aug 4, 2026
Merged

feat(support): onboardinglijst gelijk aan de app + wizardstatus#53
onder-ates merged 1 commit into
mainfrom
feat/support-lijst-gelijk-aan-app

Conversation

@onder-ates

@onder-ates onder-ates commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Sluit het gat dat ik gisteren zelf meldde: de app kent negen school-/instructeuritems, het supportportaal toonde er zes.

Wat erbij komt

Drie ontbrekende stappen — lesduur, planningsmodus en facturatie — met dezelfde afleiding als src/lib/onboardingStatus.ts in de app. En de setupwizard-status in het schoolblok: afgerond, overgeslagen of nog niet doorlopen, met tijdstip.

Waarom dit geen cosmetica is

Rijschool Nielsen stelde op 30 juli een lesduur van 90 minuten in, een week na inschrijving. In het portaal was die school "ingeschreven, ingelogd, verder niets". De conclusie die ik daaruit trok — ze zijn nooit begonnen — was verkeerd. Ze kwamen terug, stelden iets in, en stopten daarna. Dat is een ander gesprek met die klant.

Voorproef tegen productie:

Rijschool Lesduur Planningsmodus Facturatie
Liamdrive
Nielsen 90 min (30 jul)
ThijsRijbewijs 80 min (5 jun) ja (5 jun) ja (5 jun)
Het Zwaantje 60 min (19 mei) ja (19 mei) ja (20 mei)
Sideways
010 Rijbewijs 50 min (23 apr) ja (23 apr) ja (10 mei)

gereed staat nu los van wanneer

Bij de lesduur is "gedaan" af te leiden (het veld is gevuld) maar het tijdstip niet exact — de planningsrij kan bij een andere instelling zijn ontstaan. Liever een stap die eerlijk "gedaan" zegt zonder datum dan een verzonnen tijdstip.

Voorheen leidde het scherm "gedaan" af uit wanneer is not null; dan moet je wel iets verzinnen. Nu draagt elke stap een expliciete gereed, en toont het scherm "gedaan" wanneer er geen betrouwbaar tijdstip is.

Gemeten dat created_at hier wél betekenis heeft: de drie rijen ontstaan pas als er echt iets wordt ingesteld. Liamdrive (deed niets) heeft geen van de drie; Het Zwaantje kreeg ze op 9 minuten, 1 uur en 12 uur na inschrijving. Geen bijproduct van de schoolcreatie dus.

Bewijs

227 tests groen, tsc schoon, eslint schoon, build groen. De drie nieuwe afleidingen zijn read-only tegen productie gedraaid (tabel hierboven).

Migratie

20260805010000 — alleen support_school_detail vervangen (create or replace, zelfde signatuur). Geen tabelwijziging.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Support school details now show onboarding progress using explicit completion statuses.
    • Completed steps display their completion time when available, or “completed” when no timestamp exists.
    • School details now include setup-wizard status: completed, skipped, or not yet started.
    • Onboarding details include lesson duration, planning mode, and bookkeeping information.

De app kent negen school-/instructeuritems; het supportportaal toonde er zes.
Lesduur, planningsmodus en facturatie ontbraken. Daardoor kon het
supportscherm "klaar" suggereren terwijl er in de app nog stappen openstonden.

Dat is geen cosmetisch verschil. Rijschool Nielsen stelde op 30 juli een
lesduur van 90 minuten in, een week na inschrijving. In het portaal was die
school "ingeschreven, ingelogd, verder niets" — en de conclusie "ze zijn nooit
begonnen" was dus verkeerd. Ze kwamen terug, stelden iets in, en stopten
daarna. Dat is een ander gesprek met die klant.

GEREED LOS VAN WANNEER. Elke stap heeft nu een expliciete `gereed`. Bij de
lesduur is "gedaan" af te leiden (het veld is gevuld) maar het tijdstip niet
exact: de planningsrij kan bij een andere instelling zijn ontstaan. Liever een
stap die eerlijk "gedaan" zegt zonder datum dan een verzonnen tijdstip.
Voorheen leidde het scherm "gedaan" af uit `wanneer is not null`, en dan moet
je wel iets verzinnen.

Gemeten dat de drie rijen pas ontstaan als er echt iets wordt ingesteld:
Liamdrive (deed niets) heeft geen van de drie; Zwaantje kreeg ze op 9 minuten,
1 uur en 12 uur na inschrijving. created_at is hier dus een betekenisvol
moment en geen bijproduct van de schoolcreatie.

Verder: de setupwizard-status (afgerond of overgeslagen, met tijdstip) staat
nu in het schoolblok. Sinds de OTA van 5 aug is dat het antwoord op "heeft
deze rijschool de setup gezien, en wat deed hij ermee".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ribba-pro Ready Ready Preview Aug 4, 2026 10:41pm

Request Review

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 64db568c-8fed-4e6b-9e3c-8a65b78db723

📥 Commits

Reviewing files that changed from the base of the PR and between 0fb0e1d and df4691e.

📒 Files selected for processing (2)
  • app/support/[id]/page.tsx
  • supabase/migrations/20260805010000_support_lijst_gelijk_aan_app.sql

📝 Walkthrough

Walkthrough

The support school detail function now returns explicit onboarding completion flags, optional timestamps, and setup-wizard status. The support page uses these fields to detect stalled steps and render onboarding and wizard states.

Changes

Support school detail

Layer / File(s) Summary
Build school detail response
supabase/migrations/20260805010000_support_lijst_gelijk_aan_app.sql
Adds support_school_detail(uuid) with school, instructor, legal, subscription, CBR, and aggregate data.
Define onboarding completion contract
supabase/migrations/20260805010000_support_lijst_gelijk_aan_app.sql
Returns 15 onboarding steps with gereed flags and optional wanneer timestamps. Restricts execution to service_role.
Render onboarding and wizard status
app/support/[id]/page.tsx
Uses gereed for stalled-step detection and status labels. Displays setup-wizard completion, skipped, or not-yet-run states.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SupportPage
  participant support_school_detail
  participant SchoolData
  SupportPage->>support_school_detail: Request school detail
  support_school_detail->>SchoolData: Read onboarding and wizard data
  SchoolData-->>support_school_detail: Return source records
  support_school_detail-->>SupportPage: Return JSONB detail
  SupportPage->>SupportPage: Render completion and wizard states
Loading

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/support-lijst-gelijk-aan-app

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@onder-ates
onder-ates merged commit 9c92ad6 into main Aug 4, 2026
2 of 3 checks passed
@onder-ates
onder-ates deleted the feat/support-lijst-gelijk-aan-app branch August 4, 2026 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant