Skip to content

UC-V1: Aktive Veranstaltung verwalten #8

@cschog

Description

@cschog

UC-ID

UC-V1

Ziel / Beschreibung

Es darf systemweit (pro Tenant) immer genau eine aktive Veranstaltung geben.

Dieser Use Case stellt sicher, dass:
• beim Aktivieren einer Veranstaltung
• alle anderen Veranstaltungen automatisch inaktiv werden

Fachlicher Kontext

Veranstaltungsmanagement

Eingaben / Filter

Der Use Case wird ausgelöst durch:
• expliziten API-Call
ODER
• implizit beim Erstellen einer Veranstaltung (Sonderfall)

Unterscheidung:

UC-V1a – Aktive Veranstaltung setzen (explizit)

„Setze Veranstaltung X aktiv“

UC-V1b – Veranstaltung anlegen

„Wenn es noch keine aktive gibt → setze diese aktiv“

👉 UC-V1 ist primär UC-V1a.

Fachliche Regeln

V1-1: Es gibt maximal eine aktive Veranstaltung
V1-2: Bei der ersten Veranstaltung -> aautomatisch aktiv
V1-3: Beim Aktivieren einer Veranstaltung -> alle anderen inaktiv
V1-4: Aktivieren der bereits aktiven Veranstaltung ist erlaubt
V1-5: Beim Löschen der aktiven Veranstaltung -> zuletzt angelegte Veranstaltung wird aktiv
V1-6: Beim Löschen der letzten Veranstaltung -> keine aktive

Abhängigkeiten zu anderen UCs

UC-T1 Teilnehmer hinzufügen -> nutzt aktive Veranstaltung
UC-V1 aktive Veranstaltung wechseln -> Basis-UC
UC-V2 Veranstaltung löschen -> muss aktive berücksichtigen

API / Technische Umsetzung

POST /api/veranstaltung/{id}/activate
Semantik:
• setzt {id} aktiv
• deaktiviert alle anderen

abgeleitete Testfälle:

Aktivieren

  1. Wechsel von A → B → B ist aktiv, A inaktiv
  2. Aktivieren von B, obwohl B aktiv ist → kein Fehler

Löschen

  1. Löschen inaktiver Veranstaltung → aktive bleibt
  2. Löschen aktiver Veranstaltung → vorherige wird aktiv
  3. Löschen der letzten Veranstaltung → keine aktive

Definition of Done

  • API implementiert
  • Validierung umgesetzt
  • Integrationstest vorhanden
  • Dokumentation aktualisiert
  • Review durchgeführt

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions