UC-GEN-TIC-004 — Reageren op melding
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-GEN-TIC-004 |
| Naam | Reageren op melding |
| Domein | Meldingen |
| Primaire actor | Ingelogde gebruiker |
| Secundaire actor(en) | Systeem, meldingenservice, beheerder als behandelaar buiten deze usecase |
| Rolcontext | Iedere ingelogde gebruiker die binnen de normale gebruikersweergave een eigen, niet-functioneel gesloten melding mag openen en daarop mag reageren |
| Betrokken schermen | SCH-GEN-07-03 — Melding details — Discussie; SCH-GEN-07-01 — Melding details — Melding; SCH-GEN-06-01 — Meldingen |
| Gerelateerde usecases | UC-GEN-TIC-002 — Mijn meldingen bekijken; UC-GEN-TIC-003 — Melding details bekijken; UC-GEN-TIC-005 — Eigen melding sluiten; UC-GEN-TIC-006 — Oplossing accepteren; UC-GEN-TIC-007 — Melding heropenen door gebruiker; UC-GEN-MSG-003 — Bericht openen |
| Primaire entiteiten | Tickets, TicketDiscussionMessages |
| Secundaire entiteiten / events | Users, TicketStatuses, TicketHistory, TicketReplyAdded, TicketStatusChanged, TicketActionIndicatorRecalculated, TicketReplyFailed |
| Gerelateerde popups | POP-GEN-TIC-NOT-AVAILABLE, POP-GEN-TIC-REPLY-NOT-ALLOWED, POP-GEN-TIC-REPLY-FAILED |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must have |
2. Omschrijving
De gebruiker plaatst een reactie binnen de externe discussie van een eigen melding. Deze reactie is bedoeld om aanvullende informatie te geven aan beheer of om binnen de lopende melding te reageren op eerdere externe communicatie. De reactie wordt niet als privébericht opgeslagen, maar als extern zichtbaar discussiebericht binnen het ticketdomein.
De reactie is alleen mogelijk zolang de melding niet functioneel gesloten is. Wanneer de melding op dat moment de status WaitingForUser heeft, wordt de reactie gebruikt om de actiebehoefte bij de gebruiker weg te nemen en de melding opnieuw behandelbaar te maken voor beheer. In de normale flow leidt dit tot status InProgress.
De gebruiker kan niet kiezen voor intern of voor een specifieke beheerder. Gebruikersreacties zijn altijd extern zichtbaar binnen de melding. Interne beheerdiscussie blijft buiten de gebruikersweergave en buiten deze usecase.
3. Scope
Deze usecase beschrijft:
- het openen van het tabblad Discussie binnen de detailpagina van een eigen melding;
- het tonen van externe discussieberichten als context voor de reactie;
- het beschikbaar stellen van het reactieveld zolang reageren functioneel toegestaan is;
- het verplicht valideren van de reactie-inhoud;
- het veilig verwerken van de reactie-inhoud;
- het opslaan van de reactie als
TicketDiscussionMessagesmetMessageType = UserMessageenVisibility = External; - het vastleggen van een compacte
TicketHistory-regel; - het bijwerken van de laatste activiteit van de melding;
- het aanpassen van
WaitingForUsernaarInProgressna een gebruikersreactie; - het opnieuw bepalen van actie-indicaties voor Wacht op mij;
- foutpaden wanneer de melding inmiddels gesloten, niet beschikbaar of niet toegankelijk is.
Deze usecase beschrijft niet:
- het aanmaken van een nieuwe melding;
- het bekijken van het meldingenoverzicht;
- het algemeen openen van de meldingdetailpagina;
- het sluiten van de eigen melding;
- het accepteren van een oplossing;
- het heropenen van een opgeloste melding;
- het plaatsen van interne beheerberichten;
- het plaatsen van externe beheerberichten;
- het oplossen of sluiten door beheer;
- het handmatig heropenen door beheer;
- het doorzetten naar docent;
- het versturen van privéberichten;
- conceptopslag, bijlagen of vrije chat buiten de meldingcontext;
- beheerdernotificaties, behalve voor zover actie-indicaties of overzichten later uit de ticketmutatie worden afgeleid.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is ingelogd. |
| PRE-002 | De meldingenfunctionaliteit is sitebreed beschikbaar. |
| PRE-003 | De gebruiker heeft toegang tot de normale applicatiecontext waarin eigen meldingen geopend mogen worden. |
| PRE-004 | De melding bestaat als Tickets-record. |
| PRE-005 | Tickets.CreatedByUserId van de melding is gelijk aan de ingelogde gebruiker. |
| PRE-006 | De melding is niet functioneel gesloten. |
| PRE-007 | Het tabblad Discussie is bereikbaar binnen de gebruikersgerichte detailpagina. |
| PRE-008 | De gebruiker ziet uitsluitend extern zichtbare discussieberichten. |
| PRE-009 | Het reactieveld is beschikbaar omdat reguliere reactieplaatsing in de huidige tickettoestand is toegestaan. |
| PRE-010 | De applicatie kan de reactie-inhoud server-side valideren en veilig verwerken. |
| PRE-011 | De applicatie kan een nieuwe TicketDiscussionMessages-regel en een TicketHistory-regel transactioneel opslaan. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De gebruikersreactie is opgeslagen als TicketDiscussionMessages met MessageType = UserMessage. |
| POST-002 | De gebruikersreactie heeft Visibility = External. |
| POST-003 | De reactie is gekoppeld aan de juiste melding. |
| POST-004 | De reactie is gekoppeld aan de ingelogde gebruiker als actor. |
| POST-005 | De reactie-inhoud is veilig opgeslagen en wordt veilig weergegeven. |
| POST-006 | Er is minimaal één compacte TicketHistory-regel vastgelegd voor de gebruikersreactie. |
| POST-007 | De laatste activiteit van de melding is bijgewerkt. |
| POST-008 | Wanneer de melding vóór de reactie WaitingForUser was, is de melding na de reactie niet langer actiebehoevend voor de gebruiker. |
| POST-009 | In de normale flow verandert WaitingForUser naar InProgress. |
| POST-010 | De teller en actie-indicatie voor Wacht op mij worden opnieuw bepaald. |
| POST-011 | De reactie is zichtbaar in de externe discussie van de melding. |
| POST-012 | Er wordt geen privébericht aangemaakt. |
| POST-013 | Er wordt geen systeembericht aan de gebruiker aangemaakt door de eigen reactie. |
| POST-014 | Interne beheerberichten blijven onzichtbaar voor de gebruiker. |
| POST-015 | Bij een mislukte validatie wordt geen reactie opgeslagen. |
| POST-016 | Bij een mislukte transactie blijven ticketstatus, discussie en history consistent. |
6. Trigger
De gebruiker opent het tabblad Discussie van een eigen melding, vult een reactie in en kiest Reactie opslaan.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Gebruiker | SCH-GEN-07-03 — Melding details — Discussie | Opent het tabblad Discussie van een eigen melding. | Het systeem toont de externe discussie en bepaalt of reageren beschikbaar is. | De detailpagina zelf valt onder UC-GEN-TIC-003. |
| 2 | Systeem | Backend / autorisatie | Controleert sessie, featurestatus en objecttoegang. | Alleen bij geldige context blijft de reactieactie beschikbaar. | Tickets.CreatedByUserId = huidige gebruiker. |
| 3 | Systeem | Backend / readmodel | Controleert de actuele tickettoestand. | Het systeem stelt vast dat de melding niet functioneel gesloten is. | Gesloten meldingen zijn alleen-lezen voor reguliere reacties. |
| 4 | Systeem | SCH-GEN-07-03 — Discussie | Toont externe discussieberichten. | De gebruiker ziet eerdere externe communicatie als context. | Alleen TicketDiscussionMessages.Visibility = External. |
| 5 | Systeem | SCH-GEN-07-03 — Discussie | Toont het reactieformulier. | De gebruiker ziet het tekstveld Reactie toevoegen en de actie Reactie opslaan. | Er is geen kladversie-opslag. |
| 6 | Gebruiker | Reactieformulier | Voert een reactie in. | De invoer blijft lokaal beschikbaar tot opslaan of navigeren. | Lege of alleen-witruimtewaarde is niet geldig. |
| 7 | Gebruiker | Reactieformulier | Kiest Reactie opslaan. | Het systeem start server-side validatie. | Frontendvalidatie mag bestaan, maar server-side validatie is leidend. |
| 8 | Systeem | Backend / validatie | Valideert melding, actor en reactie-inhoud opnieuw. | Het systeem controleert opnieuw dat de melding bestaat, toegankelijk is en reageren nog is toegestaan. | Dit voorkomt race conditions na statuswijzigingen. |
| 9 | Systeem | Backend / validatie | Verwerkt de reactie-inhoud veilig. | Het systeem blokkeert lege inhoud en behandelt tekst veilig voor opslag en weergave. | Geen actieve HTML of JavaScript renderen. |
| 10 | Systeem | Backend / transactionele opslag | Maakt het discussiebericht aan. | Er ontstaat een nieuw TicketDiscussionMessages-record. | MessageType = UserMessage; Visibility = External; actor = huidige gebruiker. |
| 11 | Systeem | Backend / statuslogica | Bepaalt of de ticketstatus aangepast moet worden. | Wanneer de melding WaitingForUser was, wordt de status in de normale flow InProgress. | Toegestane overgang: WaitingForUser → InProgress. |
| 12 | Systeem | Backend / ticketmetadata | Werkt laatste activiteit bij. | De melding krijgt een bijgewerkt laatste-activiteitmoment. | Bronwaarde wordt in UTC opgeslagen. |
| 13 | Systeem | Backend / history | Legt een compacte historyregel vast. | Er ontstaat een TicketHistory-record voor de gebruikersreactie. | Volledige vrije tekst hoort in de discussie, niet in history. |
| 14 | Systeem | Backend / transactie | Rondt de transactie af. | Discussiebericht, eventuele statuswijziging, laatste activiteit en history zijn consistent opgeslagen. | Bij falen wordt de transactie teruggedraaid. |
| 15 | Systeem | UI / readmodel | Ververst de discussie. | De nieuwe reactie wordt zichtbaar in de externe discussielijst. | De reactie wordt veilig weergegeven. |
| 16 | Systeem | UI / actie-indicatie | Bepaalt actie-indicaties opnieuw. | Wanneer de melding niet langer WaitingForUser is, verdwijnt de actie-indicatie voor deze melding uit Wacht op mij. | De teller is afgeleid en niet los opgeslagen. |
| 17 | Systeem | SCH-GEN-07-03 — Discussie | Leegt het reactieveld. | De gebruiker ziet dat de reactie is geplaatst. | Geen concept wordt bewaard. |
| 18 | Gebruiker | SCH-GEN-07-03 — Discussie | Blijft op de detailpagina of navigeert terug. | De gebruiker kan de bijgewerkte externe discussie lezen of teruggaan naar het overzicht. | Terugnavigeren valt onder UC-GEN-TIC-002. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | De gebruiker is niet ingelogd of de sessie is verlopen. | Het systeem start de generieke loginflow. | Generieke loginflow, geen meldingenpopup. | Geen. |
| ALT-002 | 2 | De meldingenfunctionaliteit is sitebreed uitgeschakeld. | Het systeem blokkeert de route of actie volgens het generieke featuretogglegedrag. | Generieke niet-beschikbaarmelding buiten deze usecase. | Geen. |
| ALT-003 | 2 / 8 | De melding bestaat niet meer of kan niet worden geladen. | Het systeem slaat geen reactie op en toont veilige foutafhandeling. | POP-GEN-TIC-NOT-AVAILABLE. | Geen. |
| ALT-004 | 2 / 8 | De melding hoort niet bij de ingelogde gebruiker. | Het systeem weigert server-side toegang zonder details over het bestaan van het record te lekken. | Generieke toegangsmelding of POP-GEN-TIC-NOT-AVAILABLE. | Geen. |
| ALT-005 | 3 / 8 | De melding is inmiddels functioneel gesloten. | Het systeem blokkeert de reactieactie en ververst de detailweergave naar alleen-lezen. | POP-GEN-TIC-REPLY-NOT-ALLOWED. | Geen. |
| ALT-006 | 6 / 9 | De reactie is leeg of bevat alleen witruimte. | Het systeem toont validatie bij het reactieveld en slaat niets op. | Inline validatie, geen popup. | Geen. |
| ALT-007 | 9 | De reactie bevat onveilige of niet-toegestane inhoud. | Het systeem sanitizet of blokkeert de inhoud volgens de veilige tekstverwerkingsregels. | Inline validatie wanneer blokkeren nodig is. | Geen bij blokkeren; gesanitizete opslag wanneer toegestaan. |
| ALT-008 | 10-14 | De databaseactie of transactie faalt. | Het systeem draait de transactie terug en toont een veilige foutmelding. | POP-GEN-TIC-REPLY-FAILED. | Geen gedeeltelijke domeinmutatie. |
| ALT-009 | 11 | De melding stond niet op WaitingForUser. | Het systeem slaat de reactie op zonder de status verplicht te wijzigen. | Geen popup. | TicketDiscussionMessages en TicketHistory; status blijft ongewijzigd tenzij statuslogica anders bepaalt. |
| ALT-010 | 11 | De melding stond op WaitingForUser. | Het systeem zet de melding in de normale flow naar InProgress. | Geen popup. | Tickets.Status wijzigt; TicketHistory legt dit compact vast of verwijst naar de reactiehistory. |
| ALT-011 | 15 | De reactie is opgeslagen maar het vernieuwen van de UI mislukt. | Het systeem toont een veilige laadfout of biedt herladen aan. | Veilige melding zonder technische details. | De opgeslagen reactie blijft bestaan. |
| ALT-012 | 16 | De gebruiker is leerling en zit in een actieve oefenrun. | Meldingenindicaties worden tijdens de actieve run tijdelijk verborgen, maar de onderliggende statuswijziging blijft geldig. | Geen popup. | Geen extra mutatie. |
| ALT-013 | 18 | De gebruiker navigeert weg zonder op te slaan. | Het systeem slaat geen concept op. | Geen popup vanuit deze usecase. | Geen. |
| ALT-014 | 4 | Er zijn nog geen externe discussieberichten. | Het systeem toont een lege staat en laat reageren toe zolang de melding open is. | Inline lege staat. | Geen door bekijken. |
| ALT-015 | 4 | Er bestaan interne beheerberichten. | Het systeem toont deze niet aan de gebruiker. | Geen. | Geen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-UC-GEN-TIC-004-001 | Een gebruiker mag alleen reageren op eigen meldingen. |
| BR-UC-GEN-TIC-004-002 | Objecttoegang tot een melding wordt server-side gecontroleerd op basis van Tickets.CreatedByUserId. |
| BR-UC-GEN-TIC-004-003 | Reageren is alleen toegestaan zolang de melding niet functioneel gesloten is. |
| BR-UC-GEN-TIC-004-004 | Een reguliere gebruikersreactie wordt altijd extern zichtbaar opgeslagen. |
| BR-UC-GEN-TIC-004-005 | De gebruiker kan niet kiezen voor interne zichtbaarheid. |
| BR-UC-GEN-TIC-004-006 | De gebruiker kan geen specifieke beheerder kiezen als ontvanger van de reactie. |
| BR-UC-GEN-TIC-004-007 | Een gebruikersreactie wordt opgeslagen als TicketDiscussionMessages met MessageType = UserMessage en Visibility = External. |
| BR-UC-GEN-TIC-004-008 | Een gebruikersreactie moet gekoppeld zijn aan het juiste ticket en de uitvoerende gebruiker. |
| BR-UC-GEN-TIC-004-009 | Een gebruikersreactie mag niet leeg zijn en mag niet alleen uit witruimte bestaan. |
| BR-UC-GEN-TIC-004-010 | Reactie-inhoud moet veilig worden opgeslagen en weergegeven zonder actieve HTML of JavaScript uit te voeren. |
| BR-UC-GEN-TIC-004-011 | Er is geen kladversie-opslag voor reacties binnen de meldingdetailpagina. |
| BR-UC-GEN-TIC-004-012 | Bij iedere succesvolle gebruikersreactie wordt minimaal een compacte TicketHistory-regel vastgelegd. |
| BR-UC-GEN-TIC-004-013 | De volledige vrije reactietekst hoort in TicketDiscussionMessages, niet in TicketHistory. |
| BR-UC-GEN-TIC-004-014 | Wanneer een melding op WaitingForUser staat en de gebruiker reageert, wordt de melding in de normale flow opnieuw behandelbaar als InProgress. |
| BR-UC-GEN-TIC-004-015 | De actie-indicatie voor Wacht op mij wordt na een reactie opnieuw berekend en niet als losse teller opgeslagen. |
| BR-UC-GEN-TIC-004-016 | Interne beheerberichten blijven onzichtbaar voor de gebruiker, ook na het plaatsen van een reactie. |
| BR-UC-GEN-TIC-004-017 | Het plaatsen van een gebruikersreactie maakt geen privébericht aan. |
| BR-UC-GEN-TIC-004-018 | Het plaatsen van een gebruikersreactie maakt geen systeembericht aan voor de gebruiker zelf. |
| BR-UC-GEN-TIC-004-019 | Een statuswijziging tussen openen en opslaan moet opnieuw server-side worden gecontroleerd. |
| BR-UC-GEN-TIC-004-020 | Bij transactionele fouten mag geen gedeeltelijke reactie-, status- of historymutatie achterblijven. |
Centrale business rules die hierbij horen:
| BusinessRule-ID | Toepassing |
|---|---|
BR-GEN-SEC-001 | Alle afgeschermde acties vereisen server-side rol-, relatie- of objectcontrole. |
BR-GEN-TIC-007 | Een eindgebruiker ziet en bewerkt uitsluitend eigen meldingen. |
BR-GEN-TIC-013 | Externe beheercommunicatie wordt gebruikersgericht als Beheerder weergegeven. |
BR-GEN-TIC-015 | Een gebruiker kan binnen een open melding uitsluitend extern reageren. |
BR-GEN-TIC-016 | Een gebruikersreactie op WaitingForUser maakt de melding opnieuw behandelbaar. |
BR-GEN-TIC-017 | Reguliere reacties op functioneel gesloten meldingen zijn niet toegestaan. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Gebruiker | Moet ingelogd zijn en toegang hebben tot de normale applicatiecontext. |
| Featurestatus | De meldingenfunctionaliteit moet sitebreed beschikbaar zijn. |
| Ticketobject | Moet bestaan en toegankelijk zijn voor de ingelogde gebruiker. |
| Objectautorisatie | Tickets.CreatedByUserId moet gelijk zijn aan de huidige gebruiker. |
| Ticketstatus | Reguliere reactie is alleen toegestaan wanneer de melding niet functioneel gesloten is. |
| Functionele geslotenheid | Wordt afgeleid uit status, sluitregistratie, heropentermijn en acceptatie-/sluitlogica. |
| Reactieveld | Verplicht bij opslaan. |
| Reactie-inhoud | Mag niet leeg zijn en mag niet alleen uit witruimte bestaan. |
| Reactie-inhoud | Moet veilig worden opgeslagen en weergegeven; actieve HTML, JavaScript of vergelijkbare actieve inhoud wordt niet uitgevoerd. |
MessageType | Voor een gebruikersreactie is de waarde UserMessage. |
Visibility | Voor een gebruikersreactie is de waarde External. |
| Actor | Moet de ingelogde gebruiker zijn. |
| Ticketkoppeling | Het discussiebericht moet gekoppeld worden aan de concrete melding waarop de gebruiker reageert. |
| Datum- en tijdwaarden | Worden in UTC opgeslagen en lokaal weergegeven. |
| Statusovergang | WaitingForUser mag na een geldige gebruikersreactie niet actiebehoevend voor de gebruiker blijven. |
| Historyregistratie | Moet verwijzen naar de actor, het ticket en de uitgevoerde actie; vrije reactietekst wordt niet volledig in history gedupliceerd. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 10 | Create | TicketDiscussionMessages | Nieuw extern discussiebericht met MessageType = UserMessage, Visibility = External, TicketId, CreatedByUserId, inhoud en CreatedAtUtc. |
| 11 | Update | Tickets | Indien de status WaitingForUser was, wordt de melding in de normale flow naar InProgress gezet. |
| 12 | Update | Tickets | Laatste activiteit wordt bijgewerkt. |
| 13 | Create | TicketHistory | Compacte auditregel voor het plaatsen van de gebruikersreactie en, indien apart gewenst, voor de statuswijziging. |
| 14 | Event | TicketReplyAdded | Domeinevent dat een gebruikersreactie is toegevoegd. |
| 14 | Event | TicketStatusChanged | Alleen wanneer de ticketstatus door de reactie wijzigt. |
| 16 | Event / afleiding | TicketActionIndicatorRecalculated | Actie-indicatie voor Wacht op mij wordt opnieuw afgeleid. |
| ALT-008 | Event | TicketReplyFailed | Technische of transactionele fout bij het opslaan van de reactie. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
SystemMessages | Een eigen gebruikersreactie maakt geen systeembericht voor de gebruiker zelf aan. |
PrivateMessageThreads | De meldingdiscussie is geen privéberichtthread. |
PrivateMessages | De reactie wordt niet als privébericht opgeslagen. |
TicketClosures | Reageren sluit de melding niet. |
TicketReopenRequests | Heropenen van een opgeloste melding loopt via UC-GEN-TIC-007, niet via het reguliere reactieveld. |
TicketTechnicalSnapshots | De technische snapshot hoort bij aanmaken of specifieke technische processen, niet bij iedere reguliere reactie. |
TicketAssignments | Reageren wijzigt geen gekoppelde beheerders. |
TicketResolutionTypes | Reageren wijzigt geen afsluitstatus. |
| Interne beheerberichten | De gebruiker kan geen intern bericht plaatsen. |
| Popupdefinities | Popupinhoud wordt centraal beheerd en niet door deze usecase aangemaakt. |
13. State diagram
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Reageren op een open melding
16.2 Reageren niet meer toegestaan door statuswijziging
17. Popupverwijzingen
| PopupKey | Moment | Variant | Doel |
|---|---|---|---|
POP-GEN-TIC-NOT-AVAILABLE | De melding bestaat niet, is niet toegankelijk of kan niet veilig worden geopend voor reactie. | InfoOnly of bestaande foutvariant volgens popupregister | Voorkomen dat detailinformatie of recordbestaan van andere gebruikers wordt gelekt. |
POP-GEN-TIC-REPLY-NOT-ALLOWED | De gebruiker probeert te reageren terwijl de melding inmiddels functioneel gesloten is of reguliere reactieplaatsing niet meer toegestaan is. | InfoOnly | Uitleggen dat reguliere reacties niet meer mogelijk zijn en dat eventuele vervolgactie via oplossing/heropenflow loopt. |
POP-GEN-TIC-REPLY-FAILED | Opslaan van de reactie mislukt door technische of transactionele oorzaak. | InfoOnly of bestaande foutvariant volgens popupregister | Veilig melden dat de reactie niet is opgeslagen zonder technische details te tonen. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft dat gebruikers binnen de eigen melding op tabblad Discussie extern kunnen reageren zolang de melding niet functioneel gesloten is. |
| Functioneel Ontwerp | Beschrijft dat gebruikers niet kunnen kiezen voor intern, specifieke beheerder of vrije chat buiten de meldingcontext. |
| Functioneel Ontwerp | Beschrijft dat een reactie op WaitingForUser de actiebehoefte bij de gebruiker wegneemt en de melding in de normale flow terugzet naar InProgress. |
| Functioneel Ontwerp | Beschrijft inline validatie voor lege reacties en veilige foutafhandeling voor niet-beschikbare of inmiddels gesloten meldingen. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijft SubmitTicketReplyCommand of gelijkwaardige applicatieactie uit met server-side objectautorisatie, statuscontrole, sanitizing, transactie en historyregistratie. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijft dat TicketDiscussionMessages.MessageType = UserMessage en Visibility = External gebruikt worden voor gebruikersreacties. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijft hoe Tickets.LastActivityAtUtc, statuswijziging en action-indicator-afleiding transactioneel of consistent worden bijgewerkt. |
| Technisch Ontwerp | Technisch Ontwerp: meldingen, tickets en beheerafhandeling, communicatie, background jobs en logging en foutafhandeling beschrijven de technische uitwerking. Beschrijft race-condition-afhandeling uit wanneer het ticket tussen schermladen en opslaan gesloten of gewijzigd is. |
| Software Requirements Specification | Beschrijft requirements voor reageren op eigen open meldingen, verplichte reactie-inhoud, externe zichtbaarheid, statusovergang, audit en veilige verwerking. |
| Database-informatie | Beschrijft of TicketDiscussionMessages, TicketHistory, TicketStatuses en eventuele laatste-activiteitvelden de beschreven mutaties ondersteunen. |
| Popupbeheer | Beschrijft of de popupkeys voor niet beschikbaar, reageren niet toegestaan en opslaan mislukt toe of hergebruik bestaande generieke ticketpopups waar passend. |
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 |
|---|---|---|
REQ-UC-GEN-TIC-004-001 | SRS-TIC-005 AC-TIC-005 | Een gebruiker alleen laten reageren op meldingen waarvan Tickets.CreatedByUserId gelijk is aan de ingelogde gebruiker |
REQ-UC-GEN-TIC-004-002 | SRS-AUTH-001 SRS-ACC-003 SRS-ACC-005 SRS-TIC-005 SRS-NFR-ACC-001 AC-AUTH-001 AC-ACC-003 AC-ACC-005 AC-TIC-005 AC-NFR-ACC-001 | Server-side controleren dat de melding bestaat en toegankelijk is voordat een reactie wordt opgeslagen |
REQ-UC-GEN-TIC-004-003 | SRS-AUTH-001 SRS-TIC-005 AC-AUTH-001 AC-TIC-005 | Reguliere gebruikersreacties blokkeren wanneer de melding functioneel gesloten is |
REQ-UC-GEN-TIC-004-004 | SRS-TIC-005 AC-TIC-005 | Het reactieveld verplicht maken bij het opslaan van een reactie |
REQ-UC-GEN-TIC-004-005 | SRS-TIC-005 AC-TIC-005 | Geen lege of alleen-witruimte-reacties opslaan |
REQ-UC-GEN-TIC-004-006 | SRS-TIC-005 SRS-NFR-SEC-001 AC-TIC-005 AC-NFR-SEC-001 | Reactie-inhoud veilig opslaan en weergeven zonder actieve HTML of JavaScript uit te voeren |
REQ-UC-GEN-TIC-004-007 | SRS-TIC-005 AC-TIC-005 | Een geldige gebruikersreactie opslaan als TicketDiscussionMessages met MessageType = UserMessage |
REQ-UC-GEN-TIC-004-008 | SRS-TIC-005 AC-TIC-005 | Een geldige gebruikersreactie opslaan met Visibility = External |
REQ-UC-GEN-TIC-004-009 | SRS-TIC-005 AC-TIC-005 | Een geldige gebruikersreactie koppelen aan het juiste ticket en de uitvoerende gebruiker |
REQ-UC-GEN-TIC-004-010 | SRS-TIC-005 SRS-NFR-AUD-001 AC-TIC-005 AC-NFR-AUD-001 | Bij iedere succesvolle gebruikersreactie minimaal een compacte TicketHistory-regel vastleggen |
REQ-UC-GEN-TIC-004-011 | SRS-TIC-005 SRS-NFR-AUD-001 AC-TIC-005 AC-NFR-AUD-001 | De vrije reactietekst niet volledig dupliceren in TicketHistory |
REQ-UC-GEN-TIC-004-012 | SRS-TIC-005 AC-TIC-005 | De laatste activiteit van de melding bijwerken na een succesvolle gebruikersreactie |
REQ-UC-GEN-TIC-004-013 | SRS-TIC-005 AC-TIC-005 | Een melding met status WaitingForUser na een geldige gebruikersreactie in de normale flow naar InProgress zetten |
REQ-UC-GEN-TIC-004-014 | SRS-TIC-005 AC-TIC-005 | Na een gebruikersreactie de actie-indicatie voor Wacht op mij opnieuw bepalen |
REQ-UC-GEN-TIC-004-015 | SRS-MSG-001 SRS-TIC-001 AC-MSG-001 AC-TIC-001 | Door een gebruikersreactie geen privébericht aanmaken |
REQ-UC-GEN-TIC-004-016 | SRS-MSG-001 SRS-TIC-001 AC-MSG-001 AC-TIC-001 | Door een gebruikersreactie geen systeembericht voor de gebruiker zelf aanmaken |
REQ-UC-GEN-TIC-004-017 | SRS-AUTH-001 SRS-TIC-005 AC-AUTH-001 AC-TIC-005 | Status en autorisatie opnieuw controleren op het moment van opslaan, ook wanneer het reactieformulier eerder zichtbaar was |
REQ-UC-GEN-TIC-004-018 | SRS-AUTH-004 SRS-ACC-003 SRS-ACC-005 SRS-TIC-002 SRS-NFR-SEC-001 SRS-NFR-ACC-001 AC-AUTH-004 AC-ACC-003 AC-ACC-005 AC-TIC-002 AC-NFR-SEC-001 AC-NFR-ACC-001 | Bij een niet-beschikbare of niet-toegankelijke melding veilige foutafhandeling tonen zonder recorddetails te lekken |
REQ-UC-GEN-TIC-004-019 | SRS-TIC-005 SRS-SHR-001 SRS-NFR-AUD-001 AC-TIC-005 AC-SHR-001 AC-NFR-AUD-001 | Bij een technische of transactionele fout voorkomen dat gedeeltelijke reactie-, status- of historymutaties worden opgeslagen |
REQ-UC-GEN-TIC-004-020 | SRS-TIC-005 AC-TIC-005 | Geen kladversie-opslag aanbieden voor reguliere gebruikersreacties op een melding |
REQ-UC-GEN-TIC-004-021 | SRS-MSG-001 SRS-TIC-005 SRS-ADM-001 AC-MSG-001 AC-TIC-005 AC-ADM-001 | Interne beheerberichten buiten de gebruikersweergave houden tijdens en na het plaatsen van een reactie |
REQ-UC-GEN-TIC-004-022 | SRS-MSG-001 SRS-TIC-003 SRS-ADM-001 AC-MSG-001 AC-TIC-003 AC-ADM-001 | Externe beheerderberichten gebruikersgericht als Beheerder blijven tonen |