Skip to content

Evenementen

Rol: lid (bekijken en aanmelden), eigenaar (volledig beheer: aanmaken, bewerken, verwijderen)

De Events-tab toont aankomende clubevenementen zoals toernooien, klinieken en onderlinge competities. Leden kunnen zich aanmelden voor evenementen met beschikbare plaatsen. Alleen de eigenaar beheert de evenementenkalender.

Aanmeldflow

Ja Nee Vol Plek beschikbaar 200 OK 400 UNIQUE fout Andere fout Events-tab openen B sorteren C naam Lid tikt op evenement Al aangemeld? F disabled Capaciteit bereikt? H Knop: Aanmelden J event K knop L al Generieke foutmelding

Evenementen­typen

TypeOmschrijving
tournamentOfficieel clubtoernooi met bracket en prijzen
clinicThematische trainingsdag met gasttrainer of thema
competitionOnderlinge competitie of ranglijstwedstrijd
otherOverige clubactiviteiten (borrel, ledenvergadering, etc.)

UI: Evenementenkaart

Elke kaart toont:

  • Naam — titel van het evenement
  • Type — kleurgebonden badge (toernooi, kliniek, etc.)
  • Datum en tijd — inclusief start- en eindtijd indien opgegeven
  • Locatie — adres of zaalindicatie
  • Prijs — in euro; gratis indien price: 0 of leeg
  • Capaciteit — resterende plekken tonen (berekend als capacity - enrollments.count)
  • Aanmeldknop — status afhankelijk van inschrijfstatus en capaciteit

Datamodellen

Evenementen

Clubevenementen zoals toernooien, klinieken en wedstrijden. Enkel door eigenaar beheerd.

Veld Type Verplicht Beschrijving Beperkingen
name text Naam van het evenement
description text Uitgebreide beschrijving
date date Datum van het evenement
startTime text Starttijd als HH:MM string
endTime text Eindtijd als HH:MM string
location text Locatie of adres
type select Type evenement tournament | clinic | competition | other
banner text URL of bestandsreferentie voor bannerafbeelding
price number Deelnameprijs in euro min 0
capacity number Maximum aantal deelnemers min 0
Toegangsregels
RegelExpressie
list @request.auth.id != ''
view @request.auth.id != ''
create @request.auth.role = 'eigenaar'
update @request.auth.role = 'eigenaar'
delete @request.auth.role = 'eigenaar'

Aanmeldingen

Koppeltabel tussen leden en evenementen. Unieke index voorkomt dubbele aanmeldingen.

Veld Type Verplicht Beschrijving Beperkingen
event relation Verwijzing naar het evenement → events · cascade delete
user relation Aangemelde gebruiker → users

Indexen: UNIQUE (event, user) — voorkomt dubbele aanmelding

Toegangsregels
RegelExpressie
list @request.auth.id != ''
view @request.auth.id != ''
create @request.auth.id != ''
update (niet van toepassing)
delete @request.auth.id = user.id || @request.auth.role = 'eigenaar'

Ontwerpkeuzes

Alleen eigenaar maakt evenementen aan In tegenstelling tot trainingen — waarbij trainers ook sessies kunnen aanmaken — zijn evenementen uitsluitend voorbehouden aan de eigenaar. Evenementen vertegenwoordigen formele clubactiviteiten die coördinatie, communicatie en soms betalingsafhandeling vereisen. De eigenaar houdt zo het overzicht over de clubkalender.

Zelfde inschrijfpatroon als trainingen event_enrollments volgt exact hetzelfde patroon als training_enrollments: een koppeltabel met UNIQUE-index op (event, user). Dit maakt de logica in de app voorspelbaar en herbruikbaar.

Geen wachtlijst voor evenementen Anders dan bij trainingen (waar een wachtlijst-knop verschijnt) toont de app bij een vol evenement simpelweg een uitgeschakelde “Vol”-knop. Evenementen hebben doorgaans een rigidere capaciteit (zaalgrootte, officiële inschrijvingsdeadlines) waarvoor een wachtlijst onpraktisch is zonder aanvullende notificatielogica.