Skip to main content

Command-register

Dit document koppelt gebruikersacties aan technische commands of API-acties. Het command-register ondersteunt het Technisch Ontwerp en voorkomt dat dezelfde actie onder meerdere namen terugkomt.

Tabelstructuur

Command-IDCommandnaamDomeinGestart vanuit usecaseInputServer-side controlesDatamutatiesEvents / historie
CMD-GEN-REL-001LoadRelationshipsOverviewRelatiesUC-GEN-REL-001Actieve gebruiker, actieve rolcontext(en)Ingelogd; alleen relaties en uitnodigingen tonen waarbij gebruiker betrokken isGeen mutatie; readmodel opbouwenGeen, tenzij audit voor inzage later nodig blijkt
CMD-GEN-REL-002SubmitFriendInviteEmailRelatiesUC-GEN-REL-002E-mailadres, actieve rolcontextIngelogd, actieve leerlingcontext, geldig e-mailadres, actief relatietype Friendship, geen actieve identieke relatie, geen identieke of kruislings openstaande uitnodiging, doelgebruiker moet leerlingrol kunnen voeren wanneer bekendRelationshipInvitations met Status = Pending, RelationshipEvents; voor bestaande ontvanger ook SystemMessagesRelationshipInvitationCreated, SystemMessageCreatedForRelationshipInvitation
CMD-GEN-REL-003SubmitExternalFriendInviteRelatiesUC-GEN-REL-002E-mailadres, expliciete bevestiging, actieve rolcontextZelfde controles als SubmitFriendInviteEmail, plus e-mailadres is nog niet gekoppeld aan bestaand OefenHub-account en gebruiker heeft bevestigd dat de naam van de uitnodiger wordt gedeeldRelationshipInvitations met ToEmail, ToUserId = null, Status = Pending, RelationshipEvents, externe uitnodigingsmailRelationshipInvitationCreated, ExternalOefenHubInviteSent
CMD-GEN-REL-004SubmitGuardianInviteEmailRelatiesUC-GEN-REL-003E-mailadres, actieve rolcontextIngelogd, actieve leerlingcontext, geldig e-mailadres, actief relatietype GuardianStudent, geen actieve identieke relatie, geen identieke of kruislings openstaande uitnodiging, doelgebruiker moet Guardian-rol kunnen voeren of via acceptatie bewust kunnen kiezenRelationshipInvitations met Status = Pending, RelationshipEvents; voor bestaande ontvanger ook SystemMessagesRelationshipInvitationCreated, SystemMessageCreatedForRelationshipInvitation
CMD-GEN-REL-005SubmitExternalGuardianInviteRelatiesUC-GEN-REL-003E-mailadres, expliciete bevestiging, actieve rolcontextZelfde controles als SubmitGuardianInviteEmail, plus e-mailadres is nog niet gekoppeld aan bestaand OefenHub-account en gebruiker heeft bevestigd dat de naam van de uitnodiger wordt gedeeldRelationshipInvitations met ToEmail, ToUserId = null, Status = Pending, RelationshipEvents, externe uitnodigingsmailRelationshipInvitationCreated, ExternalOefenHubInviteSent
CMD-GEN-REL-006ResolvePendingRelationshipInviteAfterRegistrationRelaties / registratieUC-GEN-REL-002, UC-GEN-REL-003, UC-GEN-REL-005, registratieprocesNieuw UserId, genormaliseerd e-mailadresOpenstaande uitnodiging met ToEmail, ToUserId = null, zelfde genormaliseerde e-mailadres en binnen geldigheidsduur van 7 dagenOpenstaande uitnodiging wordt functioneel aan nieuwe gebruiker gekoppeld of ToUserId wordt gevuld; systeembericht kan daarna worden aangemaaktRelationshipInvitationLinkedToRegisteredUser, SystemMessageCreatedForRelationshipInvitation
CMD-GEN-REL-007AcceptRelationshipInvitationRelatiesUC-GEN-REL-005InvitationId, ontvanger, actieve/gekozen doelrolcontextOntvanger is de doelgebruiker; uitnodiging is Pending; niet verlopen; doelrol past bij uitnodiging of is bewust gekozen/geactiveerd; geen actieve identieke relatieRelationshipInvitations.Status = Accepted, RespondedAtUtc, RespondedByUserId, ResolvedRelationshipId; UserRelationships wordt aangemaakt of geactiveerd; events en notificatie naar uitnodigerRelationshipInvitationAccepted, RelationshipActivated, SystemMessageCreatedForInvitationResponse
CMD-GEN-REL-008DeclineRelationshipInvitationRelatiesUC-GEN-REL-005InvitationId, ontvanger, bevestigingOntvanger is de doelgebruiker; uitnodiging is Pending; niet verlopen; afwijzing is bevestigdRelationshipInvitations.Status = Rejected, RespondedAtUtc, RespondedByUserId; geen UserRelationshipsRelationshipInvitationRejected, SystemMessageCreatedForInvitationResponse
CMD-GEN-REL-009ExpirePendingRelationshipInvitationsRelatiesUC-GEN-REL-002, UC-GEN-REL-003, UC-GEN-REL-005, geplande verwerkingPeildatum/tijdAlleen pending uitnodigingen waarvan de geldigheidsduur is verstrekenRelationshipInvitations.Status = Expired, RelationshipEventsRelationshipInvitationExpired
CMD-GEN-REL-010DisconnectRelationshipRelatiesUC-GEN-REL-004RelationshipId, bevestiging, actieve rolcontextGebruiker is betrokken partij of geautoriseerd; relatie is actief; relatietype staat directe ontkoppeling toe; bevestigingspopup is bevestigdUserRelationships.IsActive = false, beëindigingsmetadata, RelationshipEvents, notificatie aan andere partijRelationshipDisconnected, SystemMessageCreatedForRelationshipDisconnected
CMD-GEN-REL-011RequestRelationshipDisconnectRelatiesUC-GEN-REL-004RelationshipId, bevestiging, actieve rolcontextGebruiker is betrokken partij; relatie is actief; relatietype gebruikt verzoekflow; bevestigingspopup is bevestigdNog nader te bepalen verzoekrecord of RelationshipEvents; relatie blijft actief tot afhandelingRelationshipDisconnectRequested
CMD-GEN-MSG-001SendPrivateMessageBerichtenUC-GEN-MSG-002Ontvanger, onderwerp, berichtinhoud, huidige gebruikerIngelogd; privéberichten actief; ontvanger binnen geldige relatie-, vriendschaps- of deelnemerscontext; onderwerp en inhoud geldig na sanitizingNieuwe of geldige PrivateMessageThreads-context; PrivateMessageThreadParticipants voor verzender en ontvanger; nieuw PrivateMessages; threadmetadata en participant-readstatePrivateMessageCreated, PrivateThreadReadStateChanged, MessageUnreadCountChanged; bij fout PrivateMessageSendFailed
CMD-GEN-MSG-002LoadMessagesOverviewBerichtenUC-GEN-MSG-001Actieve gebruiker, typefilter, statusfilter, zoekterm, pagineringIngelogd; alleen eigen systeemberichten en eigen privéthread-participantregels; filters verruimen autorisatie nietGeen mutatie; mailbox-readmodel opbouwenGeen, tenzij technische logging voor foutanalyse
CMD-GEN-MSG-003MarkMailboxItemAsReadBerichtenUC-GEN-MSG-001MailboxItemId, itemtype, huidige gebruikerEigen systeembericht of eigen private-thread participantregel; item is zichtbaar of functioneel bereikbaarSystemMessages.ReadAtUtc vullen of participant-readstate bijwerkenSystemMessageReadStateChanged of PrivateThreadReadStateChanged, MessageUnreadCountChanged
CMD-GEN-MSG-004MarkMailboxItemAsUnreadBerichtenUC-GEN-MSG-001MailboxItemId, itemtype, huidige gebruikerEigen systeembericht of eigen private-thread participantregel; item is zichtbaar of functioneel bereikbaarSystemMessages.ReadAtUtc leegmaken of participant-readstate zodanig aanpassen dat item ongelezen isSystemMessageReadStateChanged of PrivateThreadReadStateChanged, MessageUnreadCountChanged
CMD-GEN-MSG-005DeletePrivateMessageThreadFromMailboxBerichtenUC-GEN-MSG-005ThreadId, huidige gebruiker, bevestigingEigen participantregel bestaat; item is privéthread; systeemberichten zijn uitgesloten; thread is nog zichtbaar voor deze participantPrivateMessageThreadParticipants.DeletedAtUtc vullen voor huidige gebruiker; teller/readmodel opnieuw bepalen of invalidatenPrivateMessageThreadRemovedFromMailbox, MessageUnreadCountChanged; bij fout PrivateMessageThreadDeleteFailed
CMD-GEN-MSG-006OpenSystemMessageBerichtenUC-GEN-MSG-003SystemMessageId, huidige gebruikerSysteembericht bestaat en RecipientUserId is huidige gebruiker; eventuele EntityType + EntityId wordt gevalideerd voordat een vervolgactie beschikbaar wordt gemaaktSystemMessages.ReadAtUtc vullen indien nog ongelezenSystemMessageReadStateChanged, MessageUnreadCountChanged
CMD-GEN-MSG-007OpenPrivateMessageThreadBerichtenUC-GEN-MSG-003ThreadId, optioneel geselecteerd MessageId, huidige gebruikerEigen participantregel bestaat, DeletedAtUtc is null, hoofdbericht en thread-events horen bij dezelfde threadPrivateMessageThreadParticipants.LastReadMessageId en/of LastReadAtUtc bijwerkenPrivateThreadReadStateChanged, MessageUnreadCountChanged
CMD-GEN-MSG-008ReplyToPrivateMessageThreadBerichtenUC-GEN-MSG-004ThreadId, onderwerp, berichtinhoud, huidige gebruikerIngelogd; privéberichten actief; eigen participantregel met DeletedAtUtc is null; thread beantwoordbaar; relatie- of deelnemerscontext nog geldig; onderwerp en inhoud geldig na sanitizingOptioneel PrivateMessageThreads.Subject; optioneel PrivateMessageThreadEvents.SubjectChanged; nieuw PrivateMessages; threadmetadata en participant-readstatePrivateMessageCreated, optioneel PrivateMessageThreadSubjectChanged, PrivateThreadReadStateChanged, MessageUnreadCountChanged; bij fout PrivateMessageSendFailed
CMD-GEN-TIC-001CloseOwnTicketMeldingenUC-GEN-TIC-005TicketId, redenEigen ticket, sluitbaarTicketClosure, historyTicketClosedByUser
Command-IDCommandnaamDomeinGestart vanuit usecaseInputServer-side controlesDatamutatiesEvents / historie
CMD-GEN-TIC-002LoadMyTicketsOverviewMeldingenUC-GEN-TIC-002ActorUserId, tab/filtercontextAlleen eigen meldingenGeen mutatie; readmodelGeen domeinevent
CMD-GEN-TIC-003LoadMyTicketDetailMeldingenUC-GEN-TIC-003TicketId, ActorUserIdAlleen eigen melding; interne beheerinformatie uitsluitenGeen mutatie; readmodelGeen domeinevent
CMD-GEN-TIC-004SubmitTicketReplyMeldingenUC-GEN-TIC-004TicketId, berichttekst, ActorUserIdEigen open melding; reactie extern; veilige invoerTicketDiscussionMessages, status eventueel naar InProgress, TicketHistoryTicketReplyAdded, TicketStatusChanged
CMD-GEN-TIC-005CloseOwnTicketMeldingenUC-GEN-TIC-005TicketId, reden, ActorUserIdEigen open melding; reden verplichtTicketClosures, extern discussie-item, TicketHistory, status ClosedTicketClosedByUser
CMD-GEN-TIC-006AcceptTicketSolutionMeldingenUC-GEN-TIC-006TicketId, ClosureId, ActorUserIdEigen opgeloste melding; actuele sluiting; acceptatie nog mogelijkAcceptatiegegevens/history; heropenmogelijkheid beëindigen/negerenTicketSolutionAccepted
CMD-GEN-TIC-007ReopenTicketByUserMeldingenUC-GEN-TIC-007TicketId, reden, ActorUserIdEigen opgeloste melding; binnen heropentermijn; reden verplichtTicketReopenRequests, extern discussie-item, status behandelbaar, TicketHistoryTicketReopenedByUser
CMD-GEN-TIC-008LoadAdminTicketsOverviewMeldingenUC-GEN-TIC-008Beheerdercontext, filter, zoektermActieve beheerdercontextGeen mutatie; beheerreadmodelGeen domeinevent
CMD-GEN-TIC-009LoadAdminTicketDetailMeldingenUC-GEN-TIC-009TicketId, beheerdercontextActieve beheerdercontextGeen mutatie; beheerreadmodelGeen domeinevent
CMD-GEN-TIC-010AssignOrUnassignTicketAdminMeldingenUC-GEN-TIC-010TicketId, beheerder, actie, reden bij ontkoppelenActieve beheerdercontext; duplicatecontrole; reden verplicht bij ontkoppelenTicketAssignments, status eventueel InProgress, TicketHistoryTicketAdminAssigned, TicketAdminUnassigned
CMD-GEN-TIC-011AddExternalTicketMessageMeldingenUC-GEN-TIC-011TicketId, berichttekst, vraag-reactie-vlagActieve beheerdercontext; actieve behandelcontext; veilige invoerExtern TicketDiscussionMessages, status eventueel WaitingForUser, SystemMessages, TicketHistoryTicketExternalMessageAdded, SystemMessageCreated
CMD-GEN-TIC-012AddInternalTicketMessageMeldingenUC-GEN-TIC-012TicketId, berichttekstActieve beheerdercontext; veilige invoerIntern TicketDiscussionMessages, TicketHistoryTicketInternalMessageAdded
CMD-GEN-TIC-013ResolveOrCloseTicketAsAdminMeldingenUC-GEN-TIC-013TicketId, oplossing/sluittoelichting, afsluitstatus, heropentermijnActieve beheerdercontext; actieve behandelcontext; afsluitstatus verplichtTicketClosures, status Closed, SystemMessages, TicketHistoryTicketResolvedOrClosedByAdmin
CMD-GEN-TIC-014ReopenTicketAsAdminMeldingenUC-GEN-TIC-014TicketId, reden, PreviousClosureIdActieve beheerdercontext; gesloten melding; bevestiging; reden verplichtTicketReopenRequests, actieve assignments ontkoppelen, status New, TicketHistoryTicketReopenedByAdmin, TicketAssignmentsCleared
CMD-GEN-TIC-015ForwardTicketToTeacherMeldingenUC-GEN-TIC-015TicketId, TeacherId, toelichtingActieve beheerdercontext; actieve behandelcontext; docent geldig binnen contextTicketClosures, TicketForwardedToTeacher, SystemMessages, PrivateMessageThreads, PrivateMessages, TicketHistoryTicketForwardedToTeacher, PrivateMessageCreated
CMD-GEN-PROF-001LoadOwnProfileProfielUC-GEN-PROF-001ActorUserIdIngelogd; alleen eigen profielGeen mutatieGeen domeinevent
CMD-GEN-PROF-002UpdateOwnProfileProfielUC-GEN-PROF-002Naamvelden, niveaucontextEigen profiel; geldige waarden; e-mail/wachtwoord niet direct muterenApplicatieprofiel / gebruikerscontextProfileUpdated
CMD-GEN-PROF-003EnforceRequiredLevelProfielUC-GEN-PROF-003ActorUserId, gekozen niveauEigen profiel; niveau verplicht en geldigNiveaucontext opslaanRequiredLevelSet
CMD-GEN-PROF-004UpdateOwnProfileAvatarProfielUC-GEN-PROF-004ProfileAvatarIdEigen profiel; avatar bestaat en is selecteerbaarProfielafbeeldingreferentie wijzigenProfileAvatarChanged
CMD-GEN-PROF-005UpdateOwnAccessibilitySettingsProfielUC-GEN-PROF-005ToegankelijkheidsinstellingenEigen instellingen; feature actief; type- en grensvalidatieUserSettings, eventuele browserwaardeAccessibilitySettingChanged
CMD-GEN-PROF-006SynchronizeAccessibilityCookieProfielUC-GEN-PROF-006Browserwaarde, profielinstellingenAlleen toegestane toegankelijkheidswaarden; profielinstellingen leidend na loginCookie/browserwaarde actualiseren of negerenAccessibilityCookieSynchronized
CMD-GEN-PROF-007UpdateOwnPreferenceProfielUC-GEN-PROF-007PreferenceKey, waarde, rolcontextEigen voorkeur; toegestane sleutel/type/rolcontextUserSettingsUserPreferenceChanged
CMD-GEN-NOT-001EvaluateSystemNotificationsForActorSysteemnotificatiesUC-GEN-NOT-001Actorcontext, browsermarkers, tijdstipDoelgroep, tijdvenster, displayregelGeen server-side mutatieSystemNotificationSelected, SystemNotificationDisplayed
CMD-GEN-NOT-002CloseSystemNotificationSysteemnotificatiesUC-GEN-NOT-002NotificationId, displayregel, browsercontextGetoonde notificatie; veilige browsermarkerBrowsermarker of runtime-uitsluitingSystemNotificationClosed
CMD-GEN-NOT-003EvaluateOncePerBrowserSystemNotificationSysteemnotificatiesUC-GEN-NOT-003NotificationId, browsermarkerDisplayRule = OncePerBrowser; marker geldig/ongeldigGeen server-side mutatie; browsermarker bepaalt zichtbaarheidSystemNotificationOncePerBrowserEvaluated
Command-IDCommandnaamDomeinGestart vanuit usecaseInputServer-side controlesDatamutatiesEvents / historie
CMD-GEN-ACC-001ProvisionInternalAccountAccountUC-GEN-ACC-001Identity-providercontext, ExternalId, profielclaimsGeldige providercontext; geen bestaand intern account met dezelfde ExternalId; verplichte claims aanwezigUsers, UserSettings, optioneel UserRoles; accountlogInternalAccountProvisioned, UserSettingsInitialized
CMD-GEN-ACC-002LinkPendingRelationshipInvitationsAccount / relatiesUC-GEN-ACC-001Nieuw Users.Id, genormaliseerd e-mailadresUitnodiging is Pending, geldig, passend en heeft ToEmail met ToUserId = nullRelationshipInvitations.ToUserId, RelationshipEventsPendingInvitationLinkedToUser
CMD-GEN-ACC-003CreateProvisioningSystemMessagesAccount / communicatieUC-GEN-ACC-001Gekoppelde InvitationId, RecipientUserIdInterne ontvanger bestaat; uitnodiging is gekoppeldSystemMessages met EntityType = RelationshipInvitationProvisioningSystemMessageCreated
CMD-GEN-ACC-004ProcessLoginSessionAccountUC-GEN-ACC-002Identity-providercallback of sessiecontextToken/claims geldig; exact één intern account; Users.IsActive = trueTechnische sessiecontext; Users.LastSeenAtUtc via afzonderlijke commandLoginSessionProcessed
CMD-GEN-ACC-005UpdateLastSeenAtAccountUC-GEN-ACC-002UserId, huidig UTC-momentActief intern account en succesvolle sessieverwerkingUsers.LastSeenAtUtcLastSeenAtUpdated
CMD-GEN-ACC-006ResolveFrontendContextAccountUC-GEN-ACC-002, UC-GEN-ACC-003UserId, rollen, instellingen, terugkeerrouteActieve UserRoles/Roles; verplichte context; routeautorisatieGeen of alleen technische context; eventueel delegatie naar profielusecaseFrontendContextResolved, NoActiveRoleContextDetected, IncompleteAccountContextDetected
CMD-GEN-ACC-007InitializeMissingUserSettingsAccountUC-GEN-ACC-003UserIdAccount is actief, eenduidig en settings ontbreken veilig herstelbaarUserSettings met defaultsMissingUserSettingsInitialized
CMD-GEN-ACC-008RequestOwnAccountDeletionAccountUC-GEN-ACC-004ActorUserId, bevestiging, eventuele opvolgerkeuzesEigen account; geldige sessie; bevestiging; opvolgers zijn geldige collaboratorsStart anonimiseer-/opruimflowAccountDeletionRequested
CMD-GEN-ACC-009AnonymizeAccountAndCleanDependenciesAccountUC-GEN-ACC-004, UC-GEN-ACC-005UserId, verwijdertrigger, verwerkingscontextGeautoriseerde trigger; precies één account; accountlog beschikbaar; transactionele veiligheidUsers, rollen/toegang, relaties, uitnodigingen, oefenruns, berichtenzichtbaarheid, tickets, live-audit en domeinhistorie volgens regelsAccountAnonymized, AccountDependenciesCleaned
CMD-GEN-ACC-010ResolveTeacherLevelOwnershipForDeletedAccountAccount / docentstructuurUC-GEN-ACC-004, UC-GEN-ACC-005UserId, niveau-eigenaarschappen, opvolgerkeuzesOpvolger is actieve collaborator; geen onbepaald eigenaarschapOverdracht of historisch/inactief maken van niveauTeacherLevelOwnershipResolvedForAccountDeletion
CMD-GEN-ACC-011LogoutOefenHubSessionAccountUC-GEN-ACC-006Actieve of verlopen sessiecontextEigen sessie; idempotent; geen domeinmutaties behalve auditbare live-meekijkbeëindiging waar nodigLokale applicatiesessie, SignalR-context, optioneel LiveViewAudit.EndedAtUtcLogoutProcessed, SignalRContextClosed, LiveViewAuditEnded
Command-IDCommandnaamDomeinOmschrijvingGebruikt in
CMD-LLN-TOEG-001ResolveStudentAccessibleCategoriesLeerling / OefenaanbodBepaalt categorieën die binnen de actieve niveaucontext zichtbaar zijn.UC-LLN-TOEG-001
CMD-LLN-TOEG-002ResolveStudentAccessibleExercisesLeerling / OefenaanbodBepaalt oefeningen die binnen categorie en niveau zichtbaar/startbaar zijn.UC-LLN-TOEG-002, UC-LLN-TOEG-003
CMD-LLN-OEF-001StartExerciseRunLeerling / OefenenMaakt een nieuwe leerlingrun aan en opent de eerste vraag.UC-LLN-OEF-003
CMD-LLN-OEF-002ResumeExerciseRunLeerling / OefenenHervat de laatst geldige niet-afgeronde run.UC-LLN-OEF-002
CMD-LLN-OEF-003SubmitExerciseAnswerLeerling / OefenenVerwerkt antwoord en slaat voortgang op.UC-LLN-OEF-004
CMD-LLN-OEF-004MarkQuestionAsDunnoLeerling / OefenenVerwerkt Geen idee en bijbehorende fouttelling.UC-LLN-OEF-006
CMD-LLN-OEF-005CompleteExerciseRunLeerling / OefenenRondt run af en berekent totalen/statistieken.UC-LLN-OEF-008
CMD-LLN-RES-001CreateDuplicateExerciseRunLeerling / ResultatenMaakt een nieuwe run op basis van een bronrun.UC-LLN-RES-003
CMD-LLN-RES-002GenerateResultPdfLeerling / ResultatenGenereert PDF-export van afgerond resultaat.UC-LLN-RES-004
CMD-LLN-DEL-001ShareExerciseWithFriendLeerling / DelenMaakt een gedeelde-oefeningrecord voor een vriend.UC-LLN-DEL-001
CMD-LLN-DEL-002StartSharedExerciseLeerling / DelenMaakt ontvangersrun aan vanuit gedeelde oefening.UC-LLN-DEL-003
CMD-LLN-DEL-003RemoveReceivedSharedExerciseLeerling / DelenVerwijdert gedeelde oefening uit eigen overzicht.UC-LLN-DEL-005
CMD-DOC-AANB-001CreateTeacherLevelDocent / OefenaanbodMaakt een nieuw docentniveau aan met actor als eigenaar.UC-DOC-AANB-003
CMD-DOC-AANB-002UpdateTeacherLevelCoreDataDocent / OefenaanbodWijzigt niveaukerngegevens.UC-DOC-AANB-004
CMD-DOC-AANB-003LinkCategoryToTeacherLevelDocent / CategorieënKoppelt bestaande centrale categorie aan niveau.UC-DOC-AANB-006
CMD-DOC-AANB-004CreateCentralCategoryFromTeacherFlowDocent / CategorieënMaakt centrale categorie aan vanuit docentflow.UC-DOC-AANB-007
CMD-DOC-OEF-001CreateExerciseDocent / OefeningenMaakt concrete oefening aan binnen niveau/categorie.UC-DOC-OEF-002
CMD-DOC-OEF-002SaveExerciseConfigurationDocent / OefeningenSlaat generieke metadata en moduleconfiguratie op.UC-DOC-OEF-004, UC-DOC-OEF-005
CMD-DOC-OEF-003ChangeExerciseActiveStateDocent / OefeningenZet oefening actief of in onderhoud.UC-DOC-OEF-006
CMD-DOC-OEF-004CopyExerciseFromOpenLevelDocent / OefeningenKopieert oefening vanuit open niveau naar eigen context.UC-DOC-OEF-007
CMD-DOC-OEF-005StartTeacherTestRunDocent / TestenStart testrun zonder permanente leerlinggeschiedenis.UC-DOC-OEF-008
CMD-DOC-OEF-006CleanupTeacherTestRunsScheduler / TestenRuimt achtergebleven docenttestruns op.UC-DOC-OEF-009
CMD-DOC-SAM-001AddLevelCollaboratorDocent / SamenwerkingKoppelt collaborator aan niveau.UC-DOC-SAM-002
CMD-DOC-SAM-002RemoveLevelCollaboratorDocent / SamenwerkingOntkoppelt collaborator van niveau.UC-DOC-SAM-003
CMD-DOC-SAM-003TransferTeacherLevelOwnershipDocent / SamenwerkingDraagt eigenaarschap over aan actieve collaborator.UC-DOC-SAM-005
CMD-DOC-LLN-001GrantStudentLevelAccessDocent / LeerlingautorisatiesGeeft leerling toegang tot niveau binnen docentcontext.UC-DOC-LLN-005
CMD-DOC-LLN-002RevokeStudentLevelAccessDocent / LeerlingautorisatiesTrekt niveauautorisatie in.UC-DOC-LLN-006
CMD-DOC-LLN-003BulkUpdateStudentLevelAccessDocent / LeerlingautorisatiesVerwerkt bulk-autorisatiewijzigingen.UC-DOC-LLN-007
CMD-DOC-LIVE-001StartTeacherLiveViewDocent / Live meekijkenStart live-meekijksessie met audit.UC-DOC-LIVE-003
CMD-DOC-LIVE-002EndTeacherLiveViewDocent / Live meekijkenBeëindigt live-meekijksessie.UC-DOC-LIVE-007

Invulregels

OnderwerpRegel
CommandnaamGebruik Engelse technische naam, bij voorkeur PascalCase.
InputBenoem functionele input, niet elk DTO-detail.
ControlesServer-side validaties expliciet opnemen.
TransactiegrensBenoem bij foutgevoelige flows of datamutaties en communicatie in één transactie moeten slagen of worden teruggedraaid.
SysteemcommandGebruik ook een commandregel voor geplande of systeemgestuurde verwerking wanneer die functioneel uit een usecase voortkomt.
Nog open ontwerpkeuzeGebruik een expliciete commandregel met opmerking wanneer een vervolgflow nog moet worden uitgewerkt, zoals ontkoppelverzoeken of doelrolkeuze.

Beheerder- en ouder-/voogdcontexten

Command-IDCommandnaamDomeinActorDoelBelangrijkste validatiesGebruikt in
CMD-BEH-FRONT-001UpdateFrontPageContentBlockFrontpagebeheerBeheerderTekstueel contentblok wijzigenBeheerdercontext, bestaande context/key, validatie titel/tekstUC-BEH-FRONT-003, UC-BEH-FRONT-004
CMD-BEH-LINK-001UpsertManagedUrlHandige linksBeheerderURL-record aanmaken of wijzigenGeldige interne/externe URL, unieke referentie waar nodigUC-BEH-LINKS-002, UC-BEH-LINKS-003
CMD-BEH-LINK-002DeleteManagedUrlHandige linksBeheerderURL-record soft-deleten of verwijderen blokkerenNiet in gebruik in footerplaatsingenUC-BEH-LINKS-004
CMD-BEH-LINK-003UpdateFooterContentHandige linksBeheerderFootertekst of footerlinkplaatsing wijzigenGeldige rolcontext, bestaande URL’s, volgorde uniekUC-BEH-LINKS-005, UC-BEH-LINKS-006
CMD-BEH-LINK-004UpdateStaticPageContentVaste pagina’sBeheerderTekstblok op vaste publieke pagina wijzigenBestaande pagina/key, layout niet wijzigbaarUC-BEH-LINKS-007
CMD-BEH-POP-001UpdatePopupDefinitionPopupbeheerBeheerderBeheerbare popupvelden wijzigenBestaande popupkey, technische velden read-only, lengtevalidatieUC-BEH-POP-003, UC-BEH-POP-004
CMD-BEH-SYSMSG-001UpdateSystemMessageTemplateSysteemberichtenbeheerBeheerderTemplate-inhoud wijzigenBestaande key, placeholdervalidatie, lengtevalidatieUC-BEH-SYSMSG-003, UC-BEH-SYSMSG-004
CMD-BEH-FEAT-001UpdateSiteFeatureToggleFeaturesBeheerderFeaturetoggle wijzigenBestaande toggle, reden, auditUC-BEH-FEAT-002
CMD-BEH-NOT-001CreateSiteNotificationSysteemnotificatiesBeheerderSysteemnotificatie aanmakenGeldige doelgroep, type, start/einddatum, displayregelUC-BEH-FEAT-004
CMD-BEH-NOT-002UpdateSiteNotificationSysteemnotificatiesBeheerderSysteemnotificatie wijzigenBestaande notificatie, datumvalidatie, displayregelUC-BEH-FEAT-005
CMD-BEH-NOT-003DisableSiteNotificationSysteemnotificatiesBeheerderNotificatie uitschakelen door einddatum op nu te zettenBestaande actieve/geplande notificatieUC-BEH-FEAT-006
CMD-BEH-SET-001UpdateSystemSettingSysteeminstellingenBeheerderBestaande systeeminstelling wijzigenBestaande key, datatype, invoervorm, redenUC-BEH-SET-002, UC-BEH-SET-005
CMD-BEH-SET-002RefreshConfigurationCacheSysteeminstellingenBeheerder / SysteemConfiguratiecache verversenGewijzigde instelling vereist cacheverversingUC-BEH-SET-003
CMD-BEH-CAT-001UpdateCategoryIdentityCategoriebeheerBeheerderNaam, kleur of icoon wijzigenBestaande categorie, reden, afzonderlijke history per veldUC-BEH-CAT-003
CMD-BEH-CAT-002UpdateCategoryStatusCategoriebeheerBeheerderCategoriestatus wijzigenGeen actieve docentniveau-/oefenkoppelingen bij deactiverenUC-BEH-CAT-004
CMD-BEH-CAT-003MigrateCategoryCategoriebeheerBeheerderBroncategorie naar doelcategorie migrerenDoel actief, niet dezelfde categorie, conflictcontrole, redenUC-BEH-CAT-005, UC-BEH-CAT-006
CMD-BEH-MOD-001UpdateExerciseModuleModulebeheerBeheerderModulemetadata/status wijzigenBestaande module, afhankelijkheden, redenUC-BEH-MOD-003, UC-BEH-MOD-004, UC-BEH-MOD-005
CMD-BEH-MOD-002TestExerciseModuleConnectivityModulebeheerBeheerderStrategy-interface/healthcheck testenBestaande module en code referenceUC-BEH-MOD-006
CMD-BEH-MOD-003MigrateExerciseModuleForTeacherModulebeheerBeheerderOefeningen van één docent migrerenBron/doelmodule, docent gebruikt bron, compatibiliteitsrisico bevestigdUC-BEH-MOD-007
CMD-BEH-MOD-004MigrateExerciseModuleGloballyModulebeheerBeheerderAlle oefeningen van bronmodule migrerenBron/doelmodule, impactcontrole, redenUC-BEH-MOD-008
CMD-BEH-MOD-005TrialMigrateExerciseModuleModulebeheerBeheerderProefmigratie voor één oefening uitvoeren/controlerenEén oefening, doelmodule actief, testcontextUC-BEH-MOD-009
CMD-BEH-DOCSUP-001AddStudentLevelAccessAsAdminDocentondersteuningBeheerderLeerling aan niveau koppelen binnen docentcontextDocentcontext, leerlingrelatie, niveau, redenUC-BEH-DOCSUP-008
CMD-BEH-DOCSUP-002RemoveStudentLevelAccessAsAdminDocentondersteuningBeheerderLeerling van niveau ontkoppelen binnen docentcontextBestaande autorisatie, redenUC-BEH-DOCSUP-009
CMD-BEH-DOCSUP-003AddLevelCollaboratorAsAdminDocentondersteuningBeheerderCollaborator toevoegenGeldige docent-docentcontext of expliciete supportcontextUC-BEH-DOCSUP-010
CMD-BEH-DOCSUP-004RemoveLevelCollaboratorAsAdminDocentondersteuningBeheerderCollaborator verwijderenBestaande collaborator, redenUC-BEH-DOCSUP-011
CMD-BEH-DOCSUP-005ForceTeacherTeacherContextDocentondersteuningBeheerderDocent-docentcontext supportmatig forcerenBeheerdercontext, reden, auditUC-BEH-DOCSUP-012
CMD-BEH-DOCSUP-006TransferLevelOwnershipAsAdminDocentondersteuningBeheerderEigenaarschap overdragenNieuwe eigenaar is actieve collaborator, redenUC-BEH-DOCSUP-013
CMD-BEH-ACC-001UpdateUserRolesAsAdminAccountbeheerBeheerderRollen toekennen/intrekkenNiet-publieke rolregels, geen leerlingcombinatie, auditUC-BEH-ACC-003, UC-BEH-ACC-004
CMD-BEH-ACC-002DisableUserAccountAsAdminAccountbeheerBeheerderAccount tijdelijk uitschakelenDoelaccount geldig, reden, afhankelijkhedenUC-BEH-ACC-005
CMD-BEH-ACC-003ReactivateUserAccountAsAdminAccountbeheerBeheerderAccount heractiverenAccount is gedeactiveerd en niet geanonimiseerdUC-BEH-ACC-006
CMD-BEH-ACC-004AnonymizeUserAccountAsAdminAccountbeheerBeheerderAccount anonimiserenImpactanalyse, reden, afhankelijke toegang opruimenUC-BEH-ACC-007
CMD-BEH-ACC-005UpdateUserSettingAsAdminAccountbeheerBeheerderGebruikersinstelling corrigerenOndersteunde instelling, geen credentialdataUC-BEH-ACC-009
CMD-OVG-KIND-001DisconnectGuardianStudentRelationshipOuder/voogdOuder/voogdKind ontkoppelenActieve ouder-/voogdrelatie, bevestiging, auditUC-OVG-KIND-005, UC-OVG-KIND-006
CMD-GEN-TIC-016ProcessExpiredTicketReopenDeadlinesMeldingen / schedulerSysteemVerlopen heropentermijnen verwerkenAlleen Closed tickets met actuele sluiting, verlopen ReopenDeadlineUtc, geen acceptatie en geen latere heropening; geen nieuwe closure; optionele idempotente TicketHistory-regel per verlopen actuele sluiting; schedulerloggingUC-GEN-TIC-016; TicketReopenDeadlineExpired; schedulerfouten technisch gelogd
CMD-OVG-LIVE-001StartGuardianLiveViewOuder/voogd liveOuder/voogdLive meekijken startenActieve relatie, actieve run, read-onlyUC-OVG-LIVE-003
CMD-OVG-LIVE-002EndGuardianLiveViewOuder/voogd liveOuder/voogd / SysteemLive meekijken beëindigenBestaande live view sessieUC-OVG-LIVE-007, UC-OVG-LIVE-008
CMD-OVG-RES-001LoadGuardianResultSummaryOuder/voogd resultatenOuder/voogdResultatensamenvatting van gekoppeld kind ladenActieve ouder-/voogdrelatie; alleen afgeronde niet-test runs; geen runmutatieUC-OVG-RES-001
CMD-OVG-RES-002LoadGuardianChildHistoryOuder/voogd resultatenOuder/voogdKindgeschiedenis van gekoppeld kind ladenActieve ouder-/voogdrelatie; alleen afgeronde runs; filters en paginering verruimen autorisatie nietUC-OVG-RES-002
CMD-OVG-RES-003ApplyGuardianHistoryFiltersOuder/voogd resultatenOuder/voogdGeschiedenisfilters toepassenFilterwaarden bestaan binnen toegestane kinddataset; lege resultaten zijn geldigUC-OVG-RES-003
CMD-OVG-RES-004LoadGuardianRunDetailOuder/voogd resultatenOuder/voogdResultaatdetail en statistieken ladenRun bestaat, is afgerond en hoort bij actief gekoppeld kind; geen score- of antwoordmutatieUC-OVG-RES-004, UC-OVG-RES-005
CMD-OVG-RES-005ExportGuardianResultPdfOuder/voogd resultatenOuder/voogdPDF-export van resultaat leverenRun bestaat, is afgerond en hoort bij actief gekoppeld kind; exportmodel bevat alleen gekozen runUC-OVG-RES-006
CMD-OVG-RES-006DenyGuardianResultAccessOuder/voogd resultatenBackendResultaattoegang veilig blokkerenGeen actieve ouder-/voogdrelatie of run hoort niet bij relatie; geen gedeeltelijke resultaatdata retournerenUC-OVG-RES-007
CMD-OVG-LIVE-003LoadGuardianOnlineOverviewOuder/voogd liveOuder/voogdOnline-overzicht gekoppelde kinderen ladenActieve ouder-/voogdcontext; alleen actief gekoppelde kinderen; geen LiveViewAuditUC-OVG-LIVE-001
CMD-OVG-LIVE-004DetermineGuardianLiveAvailabilityOuder/voogd liveOuder/voogd / BackendLivebeschikbaarheid bepalenActieve ouderrelatie, featurestatus en actieve run; knopstatus is geen autorisatiebronUC-OVG-LIVE-002
CMD-OVG-LIVE-005ResyncGuardianLiveProgressOuder/voogd liveOuder/voogd / SysteemLivevoortgang resynchroniserenOpen live sessie, actuele ouderrelatie en run hoort bij kind; geen runmutatieUC-OVG-LIVE-004, UC-OVG-LIVE-006, UC-OVG-LIVE-008
CMD-OVG-LIVE-006BrowseGuardianLiveQuestionOuder/voogd liveOuder/voogdDoor vragen bladeren tijdens live meekijkenOpen live sessie; vraagindex binnen run; modulespecifieke previewgrenzen respecteren; lokale UI-stateUC-OVG-LIVE-005
CMD-OVG-LIVE-007HandleGuardianLiveDisconnectOuder/voogd liveOuder/voogd / SysteemVerbindingsverlies en reconnect afhandelenMaximaal vijf herverbindingspogingen; na herstel autorisatie en runstatus opnieuw controleren; definitief falen beëindigt audit idempotentUC-OVG-LIVE-008