Skip to main content

Domeinobjecten

Dit document koppelt functionele begrippen aan database-entiteiten, readmodels en payloadstructuren. Het voorkomt dat usecases nieuwe tabelnamen introduceren wanneer de database-informatie al een passende structuur heeft.

Tabelstructuur

Functioneel begripPrimaire database-entiteit / structuurGerelateerde entiteitenGebruikt inOpmerking
RelatieoverzichtReadmodel over UserRelationships, RelationshipInvitations, Users, Roles, RelationshipTypesRelationshipEvents, SystemMessagesUC-GEN-REL-001Toont actieve relaties en openstaande verstuurde uitnodigingen; inkomende uitnodigingen lopen via systeemberichten.
RelatieUserRelationshipsRelationshipTypes, RelationshipEvents, Users, RolesUC-GEN-REL-001, UC-GEN-REL-004, UC-GEN-REL-005Wordt pas actief na acceptatie van een relatie-uitnodiging. Ontkoppelen is soft-deactivatie.
VriendschapUserRelationships met relatietype FriendshipRelationshipInvitations, RelationshipEvents, Users, RolesUC-GEN-REL-002, UC-GEN-REL-005Functionele relatie tussen twee leerlingrolcontexten voor communicatie en delen binnen OefenHub.
Ouder-/voogdrelatieUserRelationships met relatietype GuardianStudentRelationshipInvitations, RelationshipEvents, Users, Roles, TeacherStudentLevelAccess, ExerciseRunsUC-GEN-REL-003, UC-GEN-REL-005, ouder/voogd-schermenZichtbare rol is Ouder/voogd; technische/backendwaarde is Guardian.
Relatie-uitnodigingRelationshipInvitationsUserRelationships, RelationshipEvents, Users, Roles, SystemMessagesUC-GEN-REL-002, UC-GEN-REL-003, UC-GEN-REL-005Ondersteunt uitnodigingen met ToEmail en optioneel ToUserId; start in status Pending.
Externe relatie-uitnodigingRelationshipInvitations met ToEmail gevuld en ToUserId = nullExterne uitnodigingsmail, registratieflow, RelationshipEventsUC-GEN-REL-002, UC-GEN-REL-003, UC-GEN-REL-005Kan gedurende 7 dagen aan nieuw geregistreerd account met hetzelfde genormaliseerde e-mailadres worden gekoppeld.
Inkomende relatie-uitnodigingSystemMessages met verwijzing naar RelationshipInvitationsRelationshipInvitations, Users, RolesUC-GEN-REL-005De leidende ingang voor accepteren of afwijzen is een systeembericht; er is geen aparte inkomende lijst op de relatiepagina.
Openstaande verstuurde uitnodigingRelationshipInvitations readmodelUsers, Roles, RelationshipTypesUC-GEN-REL-001, UC-GEN-REL-002, UC-GEN-REL-003Zichtbaar voor de uitnodiger zolang de uitnodiging pending en zichtbaar hoort te zijn.
Relatie-eventRelationshipEventsRelationshipInvitations, UserRelationships, Users, RolesRelatiesAuditbron voor uitnodigen, koppelen, accepteren, afwijzen, verlopen, intrekken en ontkoppelen.
Relatie-systeemberichtSystemMessagesSystemMessageTemplates, RelationshipInvitations, UserRelationshipsUC-GEN-REL-002, UC-GEN-REL-003, UC-GEN-REL-005, UC-GEN-REL-004Kanaal voor bestaande ontvangers en voor terugkoppeling aan de uitnodiger bij acceptatie/afwijzing of ontkoppeling.
OntkoppelactieUserRelationships update + RelationshipEventsSystemMessagesUC-GEN-REL-004Directe ontkoppeling zet de relatie inactief; verzoekflow maakt geen directe relatie-update.
OntkoppelverzoekNog nader te bepalen structuur of eventtypeRelationshipEvents, SystemMessagesUC-GEN-REL-004Deze usecase benoemt het verschil; de relatie blijft actief totdat een bevoegde vervolgactie het verzoek afhandelt of de relatie deactiveert.
PrivéberichtPrivateMessagesPrivateMessageThreads, PrivateMessageThreadParticipants, UsersUC-GEN-MSG-001, UC-GEN-MSG-002, UC-GEN-MSG-003, UC-GEN-MSG-004, UC-GEN-MSG-005, berichtenIndividueel bericht binnen een thread; inhoud wordt veilig verwerkt voor preview en detailweergave.
BerichtenoverzichtReadmodel over SystemMessages, PrivateMessageThreads, PrivateMessageThreadParticipants, PrivateMessages en PrivateMessageThreadEventsUsers, SystemSettings, SiteFeatureTogglesUC-GEN-MSG-001, UC-GEN-MSG-005Combineert systeemberichten en privéthread-mailboxitems voor één ingelogde gebruiker; verwijderde participantthreads worden uitgesloten.
SysteemberichtSystemMessagesSystemMessageTemplates, Users, domeinverwijzing via EntityType + EntityIdUC-GEN-MSG-001, UC-GEN-MSG-003, relaties, meldingenNiet verwijderbaar door gebruikers; gelezenstatus via ReadAtUtc; openen verwerkt het onderliggende domeinobject niet automatisch.
PrivéberichtthreadPrivateMessageThreadsPrivateMessageThreadParticipants, PrivateMessages, PrivateMessageThreadEventsUC-GEN-MSG-001, UC-GEN-MSG-002, UC-GEN-MSG-003, UC-GEN-MSG-004, UC-GEN-MSG-005, berichtenContainer voor privégesprekken; zichtbaarheid en leesstatus lopen via deelnemerlaag.
Privéberichtthread-deelnamePrivateMessageThreadParticipantsPrivateMessageThreads, PrivateMessages, UsersUC-GEN-MSG-001, UC-GEN-MSG-002, UC-GEN-MSG-003, UC-GEN-MSG-004, UC-GEN-MSG-005, berichtenBepaalt mailboxzichtbaarheid, participantgebonden verwijdering en readstate.
Privéberichtthread-eventPrivateMessageThreadEventsPrivateMessageThreads, UsersUC-GEN-MSG-001, UC-GEN-MSG-002, UC-GEN-MSG-003, UC-GEN-MSG-004, UC-GEN-MSG-005, berichtenThreadinterne gebeurtenis zoals onderwerpwijziging of deelnemer verlaten; geen systeembericht.
Open berichtDetailreadmodel over SystemMessages of over PrivateMessageThreads, PrivateMessageThreadParticipants, PrivateMessages en PrivateMessageThreadEventsUsers, domeinverwijzingen via EntityType + EntityIdUC-GEN-MSG-003, UC-GEN-MSG-005Toont één geautoriseerd systeembericht of één geautoriseerde privéthreaddetailcontext en verwerkt de eigen readstate bij openen; kan verwijderflow voor een privéthread starten.
Nieuw privéberichtMutatieflow over PrivateMessageThreads, PrivateMessageThreadParticipants, PrivateMessages, Users en UserRelationshipsFeaturestatus, participant-readstate, ongelezen-readmodelUC-GEN-MSG-002Maakt of gebruikt een privéthreadcontext voor een nieuw privébericht en zet de ontvanger op ongelezen.
Beantwoord berichtMutatieflow over PrivateMessageThreads, PrivateMessageThreadParticipants, PrivateMessages en PrivateMessageThreadEventsUsers, UserRelationships, featurestatus, participant-readstateUC-GEN-MSG-004Voegt een antwoord toe aan een bestaande privéthread en verwerkt optioneel een onderwerpwijziging als thread-event.
Privéberichtthread-mailboxverwijderingMutatie op PrivateMessageThreadParticipantsPrivateMessageThreads, ongelezen-readmodelUC-GEN-MSG-005Verwijdert een privéthread uitsluitend uit de eigen mailboxweergave via participantstatus; berichten en andere deelnemers blijven intact.
Ongelezen berichtentellerAfgeleid readmodel over SystemMessages, PrivateMessageThreadParticipants, PrivateMessages en PrivateMessageThreadEventsHeadercomponent, samenvattingskaart, SignalR/UI-updateUC-GEN-MSG-001, UC-GEN-MSG-002, UC-GEN-MSG-003, UC-GEN-MSG-004, UC-GEN-MSG-005Gebruikergebonden teller; leerlingbadge kan tijdens actieve oefenrun visueel verborgen zijn.
MeldingTicketsTicketDiscussionMessages, TicketClosures, TicketReopenRequests, TicketHistoryMeldingenStatus wordt deels afgeleid uit ticketcontext.
OefenrunExerciseRunsExerciseRunProgress, resultaten, historiesnapshotsOefenenRelevante relatiegevolgen: ouder/voogd-inzage en live meekijken stoppen voor toekomstige toegang na ontkoppeling.
Functioneel begripPrimaire database-entiteit / structuurBetekenis / toelichtingGebruikt in
Melding technische snapshotTicketTechnicalSnapshotsMomentopname van technische en contextuele gegevens bij indienen; wordt niet achteraf herberekend.UC-GEN-TIC-001, UC-GEN-TIC-009
MeldingbeheerderkoppelingTicketAssignmentsActieve koppeling tussen melding en één of meer beheerders; bepaalt behandelcontext.UC-GEN-TIC-010, UC-GEN-TIC-011, UC-GEN-TIC-013, UC-GEN-TIC-015
Melding doorgezet naar docentTicketForwardedToTeacherVastlegging dat beheer een melding inhoudelijk heeft doorgezet naar een docent.UC-GEN-TIC-015
ProfielUsers / applicatieprofielApplicatieprofiel met naamgegevens, niveaucontext en verwijzing naar profielafbeelding.UC-GEN-PROF-001 t/m UC-GEN-PROF-004
ProfielafbeeldingProfileAvatarsVooraf gedefinieerde profielafbeeldingen; vrije uploads zijn niet toegestaan.UC-GEN-PROF-004
GebruikersinstellingUserSettingsOpslag voor voorkeuren en toegankelijkheidsinstellingen van de gebruiker.UC-GEN-PROF-005, UC-GEN-PROF-007
ToegankelijkheidscookieBrowserwaarde / cookieTechnische spiegeling van beperkte toegankelijkheidswaarden voor vóór-login toepassing; geen bron van waarheid.UC-GEN-PROF-006
SysteemnotificatieSystemNotificationsSitebrede notificatie met doelgroep, type, inhoud, UTC-start-/eindmoment en displayregel.UC-GEN-NOT-001 t/m UC-GEN-NOT-003
Systeemnotificatie-browsermarkerBrowserwaarde / cookieClient-side marker voor OncePerBrowser; bevat geen persoonsgegevens of autorisatiedata.UC-GEN-NOT-002, UC-GEN-NOT-003
Functioneel begripPrimaire database-entiteit / structuurGerelateerde entiteitenGebruikt inOpmerking
Intern OefenHub-accountUsersUserRoles, Roles, UserSettings, identity-providerkoppeling via ExternalIdUC-GEN-ACC-001 t/m UC-GEN-ACC-006Applicatieaccount in OefenHub; credentials blijven bij de identity provider.
Identity-provideraccountExterne identity-providercontextUsers.ExternalIdUC-GEN-ACC-001, UC-GEN-ACC-002, UC-GEN-ACC-004, UC-GEN-ACC-005, UC-GEN-ACC-006Externe bron voor authenticatie, wachtwoorden, e-mailverificatie en primaire sessie.
AccountprovisioningMutatieflow over Users, UserSettings, optioneel UserRolesRelationshipInvitations, RelationshipEvents, SystemMessages, accountlogUC-GEN-ACC-001Maakt na eerste succesvolle identity-providerlogin een intern account aan wanneer dit nog niet bestaat.
OefenHub-sessiecontextTechnische applicatiesessie + server-side contextbepalingUsers, UserRoles, Roles, UserSettingsUC-GEN-ACC-002, UC-GEN-ACC-003, UC-GEN-ACC-006Geen aparte domeintabel; bepaalt beschikbare frontendcontexten en routeguardgedrag.
Context zonder rolAfgeleide frontendcontextUsers, UserRoles, Roles, UserSettingsUC-GEN-ACC-003Beperkte geauthenticeerde context wanneer geen actieve bruikbare rolcontext beschikbaar is.
AccountverwijderingMutatieflow over Users en afhankelijke domeinenUserRelationships, RelationshipInvitations, TeacherLevels, ExerciseRuns, PrivateMessageThreadParticipants, Tickets, LiveViewAudit, accountlogUC-GEN-ACC-004Gebruikersgerichte selfservice-flow voor het eigen account; leidt direct tot anonimisering.
AccountanonimiseringUsers update en afhankelijke opruimflowRollen, relaties, toegang, oefenruns, berichten, meldingen, live-audit, domeinhistorieUC-GEN-ACC-005Vervangt zichtbare persoonsgegevens door systeemwaarden en blokkeert reguliere toegang.
Account lifecycle-loggingAccountlogkanaal / applicatielogRelevante domeinhistorieUC-GEN-ACC-001 t/m UC-GEN-ACC-006Technische herleidbaarheid zonder wachtwoorden, tokens, secrets of credentialgegevens.
LogoutcontextTechnische sessie-/routeguardcontextSignalR, browserwaarden, LiveViewAuditUC-GEN-ACC-006Beëindigt lokale applicatiecontext; geen aparte domeinsessietabel.
Functioneel begripBetekenis
Actieve leerlingniveaucontextAfgeleide context die bepaalt welk niveau leidend is voor leerlingfrontpage, categorieën, oefeningen, voortgang en geschiedenis.
Toegankelijke leerlingcategorieCategorie die binnen het actieve niveau en de actuele autorisatiecontext zichtbaar is voor de leerling.
Toegankelijke leerlingoefeningConcrete oefening die actief is en binnen de actuele leerlingcontext geopend of gestart mag worden.
Exercise runZelfstandige uitvoering van een oefening door een gebruiker, met eigen voortgang, antwoorden, totalen en afronding.
Niet-afgeronde exercise runRun zonder afrondmoment die hervatbaar kan zijn zolang de context nog geldig is.
Gedeelde oefeningAdministratief ontvangen of verstuurd gedeeld oefenrecord dat pas bij starten door de ontvanger een eigen run oplevert.
DocentniveauOnderwijscontext waarin een docent categorieën, oefeningen, leerlingen en collaborators beheert.
Niveau-collaboratorDocent met expliciet bewerkrecht binnen een niveau, zonder automatisch toegang tot leerlingen of resultaten.
Niveau-eigendomsoverdrachtFormele wijziging van de eigenaar van een docentniveau met verplichte reden en historie.
Docent-leerling-niveauautorisatieToegangstoekenning waarmee een docent een leerling toegang geeft tot een niveau binnen de eigen docentcontext.
Docenttest-runTijdelijke of opruimbare oefenrun voor testdoeleinden door docent, niet zichtbaar als leerlingresultaat.
Live-meekijksessieAlleen-lezen realtime observatie van een actieve leerlingrun binnen geautoriseerde docent- of oudercontext.

Invulregels

OnderwerpRegel
Geen fictieve tabellenGebruik alleen entiteiten die in database-informatie bestaan of markeer expliciet dat verdere uitwerking nodig is.
Functionele termGebruik Nederlandse functionele term in de eerste kolom.
Technische naamGebruik de technische naam zoals bekend in database-informatie of ontwerpbronnen.
RelatiesLeg bij relatieobjecten altijd vast of het om een uitnodiging, actieve relatie, event of readmodel gaat.

Beheerder- en ouder-/voogdcontexten

DomeinobjectDomeinBetekenisBelangrijkste relaties / aandachtspunten
AdminFrontpageReadModelBeheerder-frontpageAfgeleid readmodel voor beheerder-frontpageblokken en recente beheerwijzigingen.Geen brondata; opgebouwd uit bestaande beheer-, content-, account- en notificatiebronnen.
ManagedContentBlockFrontpagebeheer / vaste pagina’sBeheerbaar tekstueel contentblok binnen codevaste pagina- of frontpagepositie.Context, BlockKey, titel/tekst/labelvelden, geschiedenis.
ManagedUrlHandige linksHerbruikbare interne of externe URL voor footer en vaste pagina’s.URL-validatie, gebruikscontrole, soft-delete.
FooterSection / FooterLinkPlacementHandige linksContextgebonden footerinhoud en geselecteerde linkplaatsingen.Rolcontext, kolom, volgorde, verwijzing naar ManagedUrl.
PopupDefinition / PopupHistoryPopupbeheerBestaande popupdefinitie en wijzigingshistorie.PopupKey stabiel; technische velden read-only.
SystemMessageTemplate / TemplateHistorySysteemberichtenbeheerBestaand systeemberichtsjabloon en geschiedenis.Referentienaam stabiel; placeholdervalidatie.
SiteFeatureToggleFeaturesSitebrede toggle voor expliciet schakelbare functie.History/audit, geen toggle voor verplichte kernfunctionaliteit.
SiteNotificationSysteemnotificatiesBeheerde notificatie-overlay na frontpageload.AudienceType, NotificationType, DisplayRule, StartUtc, EndUtc.
SystemSettingSysteeminstellingenBestaande configuratiesleutel met datatype en invoervorm.Nieuwe sleutels via code/migratie; wijzigingen auditbaar.
ManagementLogEntryBeheerloggingAuditregel voor beheerhandelingen.Actor, rolcontext, domein, actie, object, tijdstip, oude/nieuwe waarde.
CategoryMigrationCategoriebeheerRegistratie van broncategorie naar doelcategorie.Bron/doel, actor, reden, conflictverwerking, geen herschrijven historische runs.
ExerciseModuleMigrationModulebeheerRegistratie van modulemigratie op proef-, docent- of globale scope.Bron/doelmodule, scope, actor, reden, oefeningimpact.
TeacherSupportContextDocentondersteuningTijdelijke beheercontext rond één geselecteerde docent.Inspectie/correctie zonder centraal categorie- of modulebeheer te dupliceren.
AccountLifecycleLogAccountbeheerHistorylaag voor beheerdergestuurde accountmutaties.Rollen, status, instellingen, anonimisering, geen identity-providercredentials.
GuardianChildReadModelOuder/voogdAfgeleid overzicht van gekoppelde kinderen.Gebaseerd op actieve GuardianStudent-relaties.
GuardianResultReadModelOuder/voogd resultatenAfgeleide resultaat- en geschiedenisset over gekoppelde kinderen.Leest historische runs; creëert geen aparte resultaatdata.
GuardianHistoryReadModelOuder/voogd resultatenAfgeleide geschiedenisregels van afgeronde runs van één gekoppeld kind.Alleen afgeronde, niet-test runs; geen aparte brondata.
TicketReopenDeadlineProcessingSysteemverwerking / meldingenPeriodieke TickerQ-verwerking over Tickets en TicketClosuresTicketHistory, schedulerlogging; UC-GEN-TIC-016; Geen nieuwe bronentiteit; idempotente verwerking op actuele databasecriteria.
GuardianHistoryFilterReadModelOuder/voogd resultatenFilteropties en gefilterde geschiedenisset voor periode, niveau, categorie en oefening.Filteropties komen uitsluitend uit de toegestane kinddataset.
GuardianRunDetailReadModelOuder/voogd resultatenRead-only detailweergave van één afgeronde run met historische context en totalen.RunId wordt opnieuw server-side geautoriseerd.
GuardianResultStatisticsReadModelOuder/voogd resultatenVraagdetails en statistieken van een geautoriseerde afgeronde run.Leest opgeslagen runvelden; geen clientside herberekening.
GuardianPdfExportModelOuder/voogd resultatenTijdelijk exportmodel voor PDF-download van een geautoriseerd resultaat.Geen verplicht permanent documentrecord.
GuardianOnlineOverviewReadModelOuder/voogd liveOverzicht van gekoppelde kinderen met online- en oefenstatus.Overzicht starten maakt geen LiveViewAudit aan.
LiveAvailabilityReadModelOuder/voogd liveAfgeleide beschikbaarheidsstatus voor Kijk live mee.Knopstatus is geen autorisatiebron; start controleert opnieuw.
GuardianLiveSessionReadModelOuder/voogd liveRead-only liveweergave van actuele vraag, voortgang en vraaglijst.SignalR is transport; opgeslagen voortgang blijft bron.