UC-BEH-FEAT-007 — Verlopen systeemnotificaties raadplegen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-FEAT-007 |
| Naam | Verlopen systeemnotificaties raadplegen |
| Domein | Beheerder / Features en systeemnotificaties |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, beheerlogcomponent |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Site Instellingen > Features > tab Systeemnotificaties |
| Gerelateerde usecases | UC-BEH-FEAT-003, UC-BEH-FEAT-004, UC-BEH-FEAT-005, UC-GEN-NOT-001 |
| Primaire entiteiten | SiteNotifications, SiteNotificationHistory, Users |
| Secundaire entiteiten / events | Geen |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft het raadplegen van verlopen systeemnotificaties. De beheerder kan recent verlopen notificaties bekijken via Afgelopen 31 dagen en de volledige verlopen historie raadplegen via Alle verlopen.
De tab Alle verlopen is read-only. Raadplegen van verlopen notificaties wijzigt geen notificatie, schrijft geen notificatiehistorie en activeert geen notificatie opnieuw. Wanneer een beheerder een verlopen notificatie als basis wil gebruiken voor nieuwe of gewijzigde communicatie, gebeurt dat via de daarvoor bedoelde aanmaak- of wijzigusecase en niet door de historische raadpleegflow zelf.
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.
- Raadpleging van verlopen notificaties is read-only.
3. Scope
Deze usecase beschrijft:
- Openen van
Afgelopen 31 dagen. - Openen van
Alle verlopen. - Selecteren en raadplegen van één verlopen systeemnotificatie.
- Tonen van inhoud, doelgroep, type, planning, displayregel en historie.
- Afleiden van verlopen status op basis van
EndAtUtcen het actuele UTC-moment. - Read-only gedrag van de volledige verlopen historie.
Deze usecase beschrijft niet:
- Heractiveren van verlopen notificaties.
- Wijzigen van een bestaande notificatie; dit hoort bij
UC-BEH-FEAT-005. - Aanmaken van een nieuwe notificatie op basis van oude inhoud; dit hoort bij
UC-BEH-FEAT-004. - Eindgebruikersweergave van notificaties.
- Mailbox-systeemberichten of popupdefinities.
3.1 Afbakening met aangrenzende usecases
| Onderdeel | Afbakening |
|---|---|
| UC-BEH-FEAT-003 | Levert het algemene overzicht en de tabstructuur. |
| UC-BEH-FEAT-004 | Maakt een nieuwe notificatie aan wanneer oude inhoud opnieuw als nieuwe communicatie gebruikt moet worden. |
| UC-BEH-FEAT-005 | Wijzigt beheerbare velden van een bestaande notificatie wanneer dat vanuit een toegestane beheercontext beschikbaar is. |
| UC-GEN-NOT-001 | Toont actieve notificaties aan gebruikers. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd in OefenHub. |
| PRE-002 | De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft. |
| PRE-003 | De Site Instellingen-route is beschikbaar via de beheerdernavigatie. |
| PRE-004 | Clientstate, querystringwaarden of zichtbare UI-elementen bepalen niet zelfstandig de autorisatie. |
| PRE-005 | De beheerder opent een toegestane verlopen-tab. |
| PRE-006 | Voor detailraadpleging bestaat de geselecteerde verlopen systeemnotificatie. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet de geselecteerde verlopen notificatie en relevante historie. |
| POST-002 | Er is geen notificatie gewijzigd of opnieuw geactiveerd. |
| POST-003 | Er is geen SiteNotificationHistory geschreven door de raadpleegactie. |
| POST-004 | Er is geen server-side seenstatus aangemaakt. |
| POST-005 | Er is geen mailboxbericht of popupdefinitie aangemaakt. |
6. Trigger
De usecase start wanneer de beheerder binnen de Systeemnotificaties-tab Afgelopen 31 dagen of Alle verlopen opent en een verlopen systeemnotificatie selecteert.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Beheerder | Systeemnotificaties-tab | Opent Afgelopen 31 dagen of Alle verlopen. | De frontend vraagt de verlopen notificaties op. | Tabfilter. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | Alleen een actieve beheerder mag de historie raadplegen. | Server-side autorisatie. |
| 3 | Backend | Query | Leest verlopen SiteNotifications. | Afgelopen 31 dagen gebruikt een tijdvenster; Alle verlopen leest de volledige verlopen set. | EndAtUtc <= nuUtc. |
| 4 | Backend | Readmodel | Leidt status en lokale weergavewaarden af. | De notificatie blijft read-only in de historische view. | UTC-bron, lokale presentatie. |
| 5 | Beheerder | Overzicht | Selecteert een verlopen notificatie. | De frontend toont detailgegevens en historie. | SiteNotifications, SiteNotificationHistory. |
| 6 | Frontend | Detailpaneel | Toont inhoud, doelgroep, type, planning, displayregel en historie. | Er wordt geen mutatieactie uitgevoerd. | Read-only. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 1 | Er zijn geen verlopen notificaties binnen de gekozen tab. | De tab toont een lege staat zonder fout. | Niet van toepassing. | Geen. |
| ALT-002 | 2 | Beheerdercontext is vervallen. | De backend weigert de raadpleging. | Toegang-geweigerdmelding. | Geen. |
| ALT-003 | 3 | De geselecteerde notificatie bestaat niet meer. | Het overzicht wordt ververst en de selectie vervalt. | Niet-beschikbaarmelding. | Geen. |
| ALT-004 | 5 | Beheerder probeert vanuit Alle verlopen direct te heractiveren. | De UI biedt die actie niet; de backend accepteert vanuit deze flow geen mutatie. | Niet van toepassing. | Geen. |
| ALT-005 | 6 | Historie ontbreekt voor een oud record. | De notificatiegegevens blijven zichtbaar; het historiesegment toont een lege staat. | Niet van toepassing. | Geen. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-001 | Een systeemnotificatie geldt als verlopen wanneer EndAtUtc gevuld is en kleiner dan of gelijk aan het actuele UTC-moment is. |
| BR-002 | Afgelopen 31 dagen toont alleen notificaties waarvan het verlopen moment binnen de afgelopen 31 dagen valt. |
| BR-003 | Alle verlopen is read-only en biedt geen directe heractivatieactie. |
| BR-004 | Raadplegen van verlopen notificaties schrijft geen SiteNotificationHistory. |
| BR-005 | Verlopen notificaties blijven historisch raadpleegbaar voor beheerders. |
| BR-006 | Een verlopen notificatie is geen mailbox-systeembericht en geen popupregister-popup. |
| BR-007 | Browsermarkers en server-side seenstatus worden niet aangepast door beheerraadpleging. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-001 | De gekozen tab moet een toegestane beheer-tab zijn. |
| VAL-002 | De geselecteerde notificatie moet bestaan. |
| VAL-003 | De geselecteerde notificatie moet volgens UTC-afleiding verlopen zijn. |
| VAL-004 | Afgelopen 31 dagen gebruikt het actuele UTC-moment als basis voor het tijdvenster. |
| VAL-005 | Clientstate mag niet bepalen of een notificatie read-only of wijzigbaar is. |
11. Datamutaties en events
Niet van toepassing. Deze usecase is een read-only raadpleegflow. Het raadplegen van verlopen notificaties wijzigt geen SiteNotifications, schrijft geen SiteNotificationHistory en publiceert geen domeinevent.
12. Geen datamutaties
| ID | Geen mutatie | Reden |
|---|---|---|
| NO-001 | SiteNotifications | Inhoud, doelgroep, planning en displayregel blijven ongewijzigd. |
| NO-002 | SiteNotificationHistory | Raadplegen schrijft geen nieuwe historyregel. |
| NO-003 | SystemMessages | Er ontstaat geen mailbox-systeembericht. |
| NO-004 | PopupDetails | Er wordt geen popupdefinitie aangemaakt of gewijzigd. |
| NO-005 | Gebruikersseenstatus | Er wordt geen server-side seenrecord aangemaakt. |
| NO-006 | Browsermarkers | Beheerraadpleging wijzigt geen browsermarkers. |
13. State diagram
Niet van toepassing. Deze usecase raadpleegt verlopen notificaties en wijzigt geen persistent statusobject. De status Verlopen is een afgeleide beheerstatus op basis van EndAtUtc en het actuele UTC-moment.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
Niet van toepassing.
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Document | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft Afgelopen 31 dagen en Alle verlopen als raadpleegviews voor verlopen systeemnotificaties. |
| Technisch Ontwerp | Technisch Ontwerp: communicatie en systeemnotificaties, readmodels en badges en frontendstate beschrijven de technische uitwerking. Vraagt queryfilters op EndAtUtc, UTC-afleiding en read-only autorisatie op de historische view. |
| Software Requirements Specification | Levert eisen voor raadpleging, read-only gedrag, lege staten 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-afleiding | Dekt | Usecasecontext |
|---|---|---|
UC-BEH-FEAT-007-REQ-001 | SRS-ADM-001 SRS-POP-002 AC-ADM-001 AC-POP-002 | Verlopen systeemnotificaties raadpleegbaar maken voor beheerders |
UC-BEH-FEAT-007-REQ-002 | SRS-ADM-001 SRS-POP-002 AC-ADM-001 AC-POP-002 | Afgelopen 31 dagen beperken tot notificaties die binnen dat tijdvenster verlopen zijn |
UC-BEH-FEAT-007-REQ-003 | SRS-ADM-001 AC-ADM-001 | Alle verlopen read-only maken |
UC-BEH-FEAT-007-REQ-004 | SRS-ADM-001 SRS-NFR-AUD-001 AC-ADM-001 AC-NFR-AUD-001 | Bij raadplegen geen SiteNotifications of SiteNotificationHistory wijzigen |
UC-BEH-FEAT-007-REQ-005 | SRS-AUTH-001 SRS-ADM-001 AC-AUTH-001 AC-ADM-001 | Bij raadplegen geen server-side seenstatus of browsermarker aanpassen |
UC-BEH-FEAT-007-REQ-006 | SRS-RDM-001 SRS-ADM-001 AC-RDM-001 AC-ADM-001 | Verlopen status afleiden uit EndAtUtc en het actuele UTC-moment |