Skip to content

Mijn Lessen (Trainer)

Rol: trainer

De “Mijn Lessen”-tab is de trainersvariant van de Trainingen-tab. In plaats van alle trainingen te tonen, filtert deze weergave op sessies waaraan de ingelogde trainer is gekoppeld via het trainer-veld. Trainers kunnen nieuwe sessies aanmaken en bestaande sessies bewerken; het verwijderen van trainingen is voorbehouden aan de eigenaar.

Flow

Geen Wel Training aanmaken Training bewerken Training verwijderen Mijn Lessen-tab openen B filter Resultaten? D Knop Lijst van eigen trainingen weergeven Actie Formulier: naam · datum · tijd · baan · capaciteit · niveau H trainer Formulier vooraf ingevuld PATCH /trainings/:id K alleen

Verschil met de Trainingen-tab (lid)

AspectLid — Trainingen-tabTrainer — Mijn Lessen-tab
ScopeAlle trainingenAlleen eigen trainingen (trainer = user)
InschrijvingInschrijfknop aanwezigNiet van toepassing
AanmakenNiet mogelijkJa, via formulier
BewerkenNiet mogelijkJa, via formulier
VerwijderenNiet mogelijkNiet mogelijk (alleen eigenaar)
DeelnemerslijstNiet zichtbaarZichtbaar per training

Onderliggende collectie

De “Mijn Lessen”-tab gebruikt dezelfde trainings-collectie als de Trainingen-tab voor leden. Het enige verschil is de filterparameter ?filter=trainer='<userId>' die de PocketBase-aanroep beperkt tot eigen sessies.

Trainingen aangemaakt door trainers of de eigenaar. Leden kunnen zich inschrijven.

Veld Type Verplicht Beschrijving Beperkingen
name text Naam van de training
description text Uitgebreide beschrijving
date date Datum van de training
startTime text Starttijd als HH:MM string
endTime text Eindtijd als HH:MM string
court text Baanidentificatie (bv. baan1)
capacity number Maximum aantal deelnemers min 1
level select Niveau van de training beginner | intermediate | advanced | kids | competition
trainer relation Verantwoordelijke trainer → users (max 1)
isRecurring bool Geeft aan of de training wekelijks terugkeert
recurringDay select Weekdag voor terugkerende trainingen MA | DI | WO | DO | VR | ZA | ZO
Toegangsregels
RegelExpressie
list @request.auth.id != ''
view @request.auth.id != ''
create @request.auth.role = 'trainer' || @request.auth.role = 'eigenaar'
update @request.auth.role = 'trainer' || @request.auth.role = 'eigenaar'
delete @request.auth.role = 'eigenaar'

Ontwerpkeuzes

Één collectie, twee views Het gebruik van dezelfde trainings-collectie voor zowel de lid- als de trainersweergave voorkomt gegevensconsistentieproblemen. Er is geen aparte “trainer_trainings”-collectie — de trainer-relatie in het schema is de enige differentiator.

Trainer mag niet verwijderen Een trainer die een sessie verwijdert, verwijdert ook alle bijbehorende inschrijvingen (cascade delete). De eigenaar als enige verwijderautorisatie beschermt ledengegevens en voorkomt onbedoeld verlies van inschrijvingshistorie. Dit is afgedwongen via de PocketBase deleteRule: @request.auth.role = 'eigenaar'.

Deelnemerslijst zichtbaar voor trainer De trainer kan per training de lijst van ingeschreven leden inzien (via de training_enrollments-collectie, gefilterd op de training). Dit helpt de trainer zich voor te bereiden op de sessie.