Skip to main content

UC-BEH-FEAT-005 — Systeemnotificatie wijzigen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-FEAT-005
NaamSysteemnotificatie wijzigen
DomeinBeheerder / Features en systeemnotificaties
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, beheerlogcomponent
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenSite Instellingen > Features > tab Systeemnotificaties
Gerelateerde usecasesUC-BEH-FEAT-003, UC-BEH-FEAT-008, UC-GEN-NOT-001
Primaire entiteitenSiteNotifications, SiteNotificationHistory, Users
Secundaire entiteiten / eventsSiteNotificationChanged
Gerelateerde popupsPOP-BEH-NOT-EDIT-CONFIRM, POP-BEH-NOT-SAVED, POP-BEH-NOT-SAVE-FAILED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder een bestaande systeemnotificatie wijzigt. Wijzigbare velden zijn de beheerbare inhouds- en planningsvelden: AudienceType, NotificationType, Title, BodyText, StartAtUtc, EndAtUtc en DisplayRule.

De mutatie blijft beperkt tot SiteNotifications en de bijbehorende notificatiehistorie. De gebruikersgerichte verwerking blijft bronhoudend in de generieke systeemnotificatie-usecases.

Alle datum- en statusafleidingen gebruiken UTC als technische bron en lokale tijd uitsluitend voor presentatie.

Uitgangspunten

  • Systeemnotificaties zijn geen mailbox-systeemberichten.
  • Systeemnotificaties zijn geen popupregister-popups.
  • Er bestaat geen server-side per-gebruiker-seentabel.
  • De beheerdercontext wordt bij iedere mutatie opnieuw server-side gecontroleerd.

3. Scope

Deze usecase beschrijft:

  • Selecteren van één bestaande systeemnotificatie.
  • Past beheerbare velden aan.
  • Valideren van gesloten sleutelsets en datumregels.
  • Vastleggen van notificatiehistorie.
  • Verversen van het notificatieoverzicht.
  • Wijzigen van inhoud, doelgroep, planning en displayregel.

Deze usecase beschrijft niet:

  • Eindgebruikersweergave van de notificatie.
  • Aanmaken van mailbox-systeemberichten.
  • Aanmaken of wijzigen van popupdefinities.
  • Vrij beheren van enumwaarden.
  • Server-side gebruikersseenstatus opslaan.

3.1 Afbakening met aangrenzende usecases

OnderdeelAfbakening
UC-BEH-FEAT-003Levert het overzicht en de selectie van de notificatie.
UC-BEH-FEAT-008Beschrijft de displayregel en gevolgen voor browsermarkers.
UC-GEN-NOT-001Toont actieve notificaties aan gebruikers.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd in OefenHub.
PRE-002De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft.
PRE-003De Site Instellingen-route is beschikbaar via de beheerdernavigatie.
PRE-004Clientstate, querystringwaarden of zichtbare UI-elementen bepalen niet zelfstandig de autorisatie.
PRE-005De systeemnotificatie bestaat.
PRE-006De beheerder heeft de notificatie geselecteerd vanuit een toegestane beheer-tab.

5. Post-condities

IDResultaat
POST-001De notificatie is bijgewerkt wanneer alle validaties slagen.
POST-002SiteNotificationHistory bevat de relevante wijziging.
POST-003Afgeleide status wordt opnieuw berekend in het overzicht.
POST-004Er is geen server-side seenstatus aangemaakt.
POST-005Er is geen mailboxbericht of popupdefinitie aangemaakt.

6. Trigger

De usecase start wanneer de beheerder bij een geselecteerde systeemnotificatie kiest voor systeemnotificatie wijzigen.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderSysteemnotificaties-tabSelecteert een notificatie.De frontend toont de beheerbare velden.SiteNotifications.
2BeheerderDetailpaneelPast beheerbare velden aan.De frontend toont waar nodig een bevestigingspopup.PopupKey.
3BackendAutorisatiecomponentControleert beheerdercontext opnieuw.Mutatie wordt alleen bij actieve beheerder verwerkt.Server-side autorisatie.
4BackendValidatieControleert status, sleutelsets, datums en veldlengtes.Ongeldige invoer wordt geweigerd.Centrale sleutelsets.
5BackendDatabase-transactieWerkt gewijzigde velden van SiteNotifications bij.De wijziging wordt atomair opgeslagen.SiteNotifications.
6BackendHistorieSchrijft SiteNotificationHistory met oud en nieuw.Wijziging is achteraf reconstrueerbaar.Audit.
7FrontendOverzichtVerverst de tab en statuslabels.De beheerder ziet de actuele toestand.Afgeleide status.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011Notificatie bestaat niet meer.De backend blokkeert de actie en ververst het overzicht.Foutpopup.Geen.
ALT-0023Beheerdercontext is vervallen.De backend weigert de mutatie.Foutpopup.Geen.
ALT-0034Veldvalidatie faalt.De wijziging wordt niet opgeslagen en de beheerder krijgt veldgerichte terugkoppeling.Foutpopup.Geen.
ALT-0045Opslaan of history schrijven faalt.De transactie wordt teruggedraaid.Foutpopup.Geen gedeeltelijke mutatie.
ALT-0055DisplayRule wordt gewijzigd naar OncePerBrowser.De nieuwe regel geldt vanaf de wijziging; bestaande browsermarkers voor dezelfde notificatie-id blijven bepalend.Niet van toepassing.SiteNotifications update.

9. Business rules

IDBusiness rule
BR-001Een wijziging aan een notificatie doorbreekt een bestaande OncePerBrowser-browsermarker niet automatisch.
BR-002Een notificatie blijft een eigen beheerdomein en veroorzaakt geen SystemMessage.
BR-003EndAtUtc null betekent geen geplande einddatum.
BR-004Afgeleide statussen worden niet als permanente statuskolom behandeld.
BR-005Oude en nieuwe veldwaarden worden auditbaar vastgelegd.
BR-006Wijziging van een OncePerBrowser-notificatie maakt oude browsermarkers niet ongeldig.
BR-007Bij belangrijke gewijzigde informatie moet beheer een nieuwe notificatie publiceren in plaats van te verwachten dat dezelfde notificatie opnieuw verschijnt.

10. Datavalidatie

IDValidatie
VAL-001Title blijft maximaal 50 tekens.
VAL-002BodyText blijft maximaal 1000 tekens.
VAL-003AudienceType, NotificationType en DisplayRule blijven gesloten sleutelsets.
VAL-004EndAtUtc mag niet vóór StartAtUtc liggen.
VAL-005Datum/tijd wordt technisch in UTC opgeslagen.
VAL-006De geselecteerde notificatie moet bestaan en wijzigbaar zijn vanuit de betreffende tab.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001SiteNotifications updateWerkt gewijzigde velden van SiteNotifications bij.
MUT-002SiteNotificationHistory insertOude en nieuwe waarden plus actor en tijdstip worden vastgelegd.
MUT-003SiteNotificationChanged eventInterne gebeurtenis voor beheerhistorie en readmodelverversing.

12. Geen datamutaties

IDGeen mutatieReden
NO-001SystemMessagesGeen mailbox-systeembericht.
NO-002PopupDetailsGeen popupdefinitie.
NO-003GebruikersseenstatusGeen server-side seenrecord.
NO-004BrowsermarkersBeheer wijzigt browsermarkers van gebruikers niet.
NO-005Andere notificatiesAndere records blijven ongewijzigd.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Deze usecase verwijst uitsluitend naar PopupKey. Popupteksten, knopteksten, inputlabels en themakeuzes blijven bronhoudend in het popupregister en popup-themes.

PopupKeyGebruik
POP-BEH-NOT-EDIT-CONFIRMZie popupregister voor tekst en knoppen.
POP-BEH-NOT-SAVEDZie popupregister voor tekst en knoppen.
POP-BEH-NOT-SAVE-FAILEDZie popupregister voor tekst en knoppen.

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

DocumentAfleiding
Functioneel OntwerpBeschrijft beheeracties binnen Systeemnotificaties-tab.
Technisch OntwerpTechnisch Ontwerp: communicatie en systeemnotificaties, readmodels en badges en frontendstate beschrijven de technische uitwerking. Vraagt transactionele update, UTC-datumverwerking en history.
Software Requirements SpecificationLevert eisen voor validatie, audit en scheiding van notificatiedomeinen.

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
UC-BEH-FEAT-005-REQ-001SRS-AUTH-001
SRS-ADM-001
SRS-POP-002
AC-AUTH-001
AC-ADM-001
AC-POP-002
Bestaande systeemnotificaties kunnen wijzigen zolang de beheerder bevoegd is
UC-BEH-FEAT-005-REQ-002SRS-ADM-001
SRS-POP-005
AC-ADM-001
AC-POP-005
Duidelijk maken dat OncePerBrowser-markers niet automatisch worden doorbroken door wijzigingen
UC-BEH-FEAT-005-REQ-003SRS-ADM-001
SRS-POP-002
SRS-NFR-AUD-001
AC-ADM-001
AC-POP-002
AC-NFR-AUD-001
Wijzigingen aan systeemnotificaties auditbaar vastleggen
UC-BEH-FEAT-005-REQ-004SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Geen server-side seenstatus per gebruiker aanmaken
UC-BEH-FEAT-005-REQ-005SRS-RDM-001
SRS-ADM-001
AC-RDM-001
AC-ADM-001
Statuslabels na wijziging opnieuw afleiden uit StartAtUtc en EndAtUtc