Skip to main content

UC-OVG-KIND-006 — Ontkoppeling aan kind communiceren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-KIND-006
NaamOntkoppeling aan kind communiceren
DomeinOuder/voogd / Kinderen en koppelingen
Primaire actorSysteem
Secundaire actor(en)Ouder/voogd, kind/leerling, berichtensysteem, backend, database
RolcontextActieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenBerichtenoverzicht leerling, systeemcommunicatie
Gerelateerde usecasesUC-OVG-KIND-005, UC-GEN-MSG-001, UC-GEN-MSG-003, UC-GEN-REL-004
Primaire entiteitenSystemMessages, UserRelationships, RelationshipEvents
Secundaire entiteiten / eventsSystemMessageCreated, GuardianStudentRelationshipDeactivated
Gerelateerde popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWShould

2. Omschrijving

De usecase beschrijft hoe het kind wordt geïnformeerd wanneer een ouder/voogd de ouder-/voogdrelatie heeft beëindigd. De communicatie verloopt via het centrale systeemberichtendomein en is informatief: het bericht herstelt de relatie niet en start geen nieuwe uitnodiging.

Het systeembericht blijft onderdeel van het algemene berichtenoverzicht. Wanneer het kind op dat moment oefent of de melding niet direct ziet, blijft het bericht beschikbaar volgens de regels van systeemberichten.

Uitgangspunten

  • Ontkoppelcommunicatie loopt via SystemMessages, niet via privéberichten.
  • Het bericht is informatief en voert geen relatieactie uit bij openen.
  • Het lezen van het bericht maakt de relatie niet opnieuw actief.
  • Systeemberichten zijn niet verwijderbaar als gewone privéthreads.
  • Realtime melding is transport, SystemMessages is de bron voor mailboxzichtbaarheid.

3. Scope

Deze usecase beschrijft:

  • Aanmaken van een systeembericht aan het kind na ontkoppeling.
  • Koppelen van het systeembericht aan de relatie- of relatie-eventcontext.
  • Zichtbaar maken in het berichtenoverzicht van de leerling.
  • Veilig afhandelen wanneer directe realtime melding niet kan worden getoond.

Deze usecase beschrijft niet:

  • Relatie opnieuw activeren.
  • Nieuwe uitnodiging starten.
  • Privéberichtthread aanmaken.
  • Popuptekst of berichttekst inhoudelijk dupliceren in de usecase.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Generiek / RelatiesRelatie-uitnodigingen, acceptatie en algemene relatievorming blijven bronhoudend in het generieke relatiedomein.
Generiek / BerichtenSysteemberichten en leesstatussen blijven bronhoudend in het centrale berichtendomein.
LeerlingDe leerling blijft eigenaar van eigen oefenuitvoering; ouder/voogd kan niet namens het kind oefenen.
DocentDocentautorisaties en docentresultaatinzage blijven begrensd door docentcontext; ouder-/voogdcontext gebruikt eigen relatiegrens.

4. Pre-condities

IDWaarde
001Er is een ouder-/voogdrelatie gedeactiveerd.
002Het kind heeft een intern Users.Id.
003Het systeemberichttemplate of de systeemberichtdefinitie is beschikbaar.

5. Post-condities

IDWaarde
001Het kind heeft een systeembericht over de ontkoppeling.
002Het bericht is informatief en verwerkt geen actie automatisch.
003De gedeactiveerde relatie blijft gedeactiveerd.

6. Trigger

De usecase start wanneer de ouder/voogd de betreffende ouder-/voogdroute opent of de beschreven actie uitvoert binnen de actieve ouder-/voogdcontext.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1BackendOntvangt relatie-deactivatie-eventCommunicatieflow startRelationshipEvents
2BackendBepaalt ontvangerKindaccount is ontvangerUserRelationships
3BerichtensysteemMaakt systeembericht aanBericht verschijnt in mailboxdatasetSystemMessages
4RealtimecomponentProbeert badge/update te sturenKind kan bericht direct of via berichtenoverzicht zienSignalR
5KindOpent bericht via berichtenoverzichtBericht wordt gelezen volgens generieke berichtenflowSystemMessages

7.1 Scherm- en routegedrag

  • De pagina Kinderen toont een compacte lijst en gebruikt selectie als bewuste tussenstap.
  • Vervolgacties blijven uitgeschakeld totdat een kind is geselecteerd.
  • Bij wijziging van relatie- of autorisatiestatus wordt oude clientstate ongeldig gemaakt.
  • De gebruiker krijgt geen docentgerichte filters of beheeracties te zien.

8. Alternatieve en exceptionele processtromen

IDWaarde
001Kind is niet online: systeembericht blijft ongelezen beschikbaar.
002Kind zit in actieve oefening: zichtbare badge kan tijdelijk worden onderdrukt zonder bericht te verliezen.
003Ontvangeraccount bestaat niet meer of is geanonimiseerd: communicatie wordt gelogd en niet naar een onbevoegde ontvanger gestuurd.
004Systeembericht bestaat al voor hetzelfde relatie-event: backend voorkomt duplicatie.

8.1 Afhandeling van verouderde of ongeldige clientstate

  • De backend herhaalt de autorisatiecontrole bij iedere vervolgactie.
  • Oude selectie-, route- of browsercontext wordt genegeerd wanneer de actuele server-side context geen toegang meer geeft.
  • De frontend mag verouderde weergave herstellen door opnieuw het actuele viewmodel op te vragen.

9. Business rules

IDWaarde
001Ontkoppelcommunicatie loopt via SystemMessages, niet via privéberichten.
002Het bericht is informatief en voert geen relatieactie uit bij openen.
003Het lezen van het bericht maakt de relatie niet opnieuw actief.
004Systeemberichten zijn niet verwijderbaar als gewone privéthreads.
005Realtime melding is transport, SystemMessages is de bron voor mailboxzichtbaarheid.

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
SysteemberichtBericht aan het kind naar aanleiding van relatie-event.Geen privébericht en geen popupregister-popup.
LeesstatusPer ontvanger binnen het berichtendomein.Lezen wijzigt alleen ReadAtUtc/leespositie.
Realtime badgeAfgeleid uit ongelezen systeemberichten.Transport kan tijdelijk ontbreken zonder berichtverlies.

9.2 Autorisatie- en privacygrenzen

  • De zichtbare dataset wordt altijd server-side beperkt tot de actieve ouder-/voogdcontext.
  • Persoonsgegevens van kinderen worden alleen getoond zolang er een actieve ouder-/voogdrelatie bestaat.
  • Historische oefenresultaten worden gelezen binnen de toegestane context, maar niet gewijzigd door raadplegen of samenvatten.

10. Datavalidatie

IDWaarde
001Relatie-event moet verwijzen naar een gedeactiveerde ouder-/voogdrelatie.
002Ontvanger moet het kind uit de relatie zijn.
003Er mag niet meerdere keren voor hetzelfde event hetzelfde systeembericht worden aangemaakt.
004EntityType/EntityId moet passen bij de toegestane systeemberichtverwijzing of als informatief bericht zonder actie worden verwerkt.

11. Datamutaties en events

IDWaarde
001SystemMessages krijgt een systeembericht voor het kind.
002Ongelezenstatus wordt initieel voor het kind vastgelegd volgens berichtenmodel.
003Een realtime badge/update kan worden verstuurd als transportmechanisme, maar vormt geen eigen domeinmutatie.

12. Geen datamutaties

IDWaarde
001UserRelationships wordt niet opnieuw geactiveerd.
002RelationshipInvitations worden niet aangemaakt.
003PrivateMessageThreads worden niet aangemaakt.
004ExerciseRuns en resultaten blijven ongewijzigd.

13. State diagram

Niet van toepassing.

De berichtleesstatus en mailbox-lifecycle blijven bronhoudend in het generieke berichtendomein. Deze usecase beschrijft alleen het aanmaken van het informatieve systeembericht na ontkoppeling.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruikOpmerking
Niet van toepassingDeze usecase gebruikt geen popupregister-popup.Eventuele lege staten of inline meldingen zijn scherminhoud en geen popupdefinitie.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

AspectAfleiding
FO/TO/SRS-001Ontkoppelen stuurt bij bevestiging een systeembericht naar de leerling.
FO/TO/SRS-002Systeemberichten blijven onderdeel van het centrale berichtensysteem.
FO/TO/SRS-003Lezen van een systeembericht verwerkt onderliggende relaties niet automatisch.

19. SRS-trace

Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.

Usecase-afleidingDektUsecasecontext
REQ-UC-OVG-KIND-006-001SRS-REL-003
SRS-REL-006
SRS-MSG-001
SRS-GUA-003
SRS-GUA-004
AC-REL-003
AC-REL-006
AC-MSG-001
AC-GUA-003
AC-GUA-004
Na ouder-/voogdontkoppeling een systeembericht aan het kind aanmaken
REQ-UC-OVG-KIND-006-002SRS-REL-003
SRS-REL-006
SRS-MSG-001
SRS-GUA-003
SRS-GUA-004
AC-REL-003
AC-REL-006
AC-MSG-001
AC-GUA-003
AC-GUA-004
Voorkomen dat hetzelfde ontkoppel-event meerdere identieke systeemberichten veroorzaakt
REQ-UC-OVG-KIND-006-003SRS-REL-001
SRS-MSG-007
SRS-GUA-001
AC-REL-001
AC-MSG-007
AC-GUA-001
Het bericht informatief houden en geen relatieherstelactie uitvoeren bij openen
REQ-UC-OVG-KIND-006-004SRS-MSG-001
SRS-TIC-002
SRS-GUA-001
SRS-ARCH-003
AC-MSG-001
AC-TIC-002
AC-GUA-001
AC-ARCH-003
Het bericht blijvend binnen de systeemberichtregels leesbaar houden wanneer directe realtime melding niet zichtbaar is
REQ-UC-OVG-KIND-006-005SRS-MSG-001
SRS-GUA-001
AC-MSG-001
AC-GUA-001
Geen privéberichtthread gebruiken voor deze systeemcommunicatie