' SPDX-License-Identifier: AGPL-3.0-or-later ' SPDX-FileCopyrightText: 2023 swt23w23 @startuml 'skinparam linetype ortho skinparam linetype polyline skinparam groupInheritance 2 package catering { class Catering class Personal class Mitarbeiter class Arbeitszeitaufstellung class Inventar class Verbrauchsmaterial { Einkaufspreis UVP Sonderpreis [0..1] } class Leihmaterial class AuftragsDatenbank abstract class Auftrag { Start Ende } class Kostenabrechnung enum AuftragsStatus { GEPLANT BEENDET ABGESAGT } together { class Eventcatering class RentACook class PartyService class MobileBreakfast } class VollEventcatering class NutzerDatenbank abstract class Nutzer class Kunde class Administrator Catering "1" *-- "1" Personal Catering "1" *-- "1" Inventar Catering "1" *-- "1" AuftragsDatenbank Catering "1" *-r- "1" NutzerDatenbank Personal "1" o-- "*" Mitarbeiter Inventar "1" o-- "*" Verbrauchsmaterial Inventar "1" o-- "*" Leihmaterial AuftragsDatenbank "1" o-- "*" Auftrag Auftrag <|-- Eventcatering Auftrag <|-- RentACook Auftrag <|-- PartyService Auftrag <|-- MobileBreakfast Eventcatering <|-- VollEventcatering NutzerDatenbank "1" o-r- "*" Nutzer Nutzer <|-- Kunde Nutzer <|-- Administrator Kunde -[hidden]r- Administrator Kunde "1" -- "*" Auftrag : beauftragt > Auftrag "1" -r- "1" Kostenabrechnung : rechnet ab < Auftrag "*" -l- "1..*" Mitarbeiter : arbeitet an < Auftrag "*" -- "1" AuftragsStatus : hat Status > VollEventcatering "*" -- "1..*" Leihmaterial : benutzt > Eventcatering "*" -- "1..*" Verbrauchsmaterial : verbraucht > PartyService "*" -- "1..*" Verbrauchsmaterial : verbraucht > MobileBreakfast "*" -- "1..*" Verbrauchsmaterial : verbraucht > Mitarbeiter "1" -- "*" Arbeitszeitaufstellung : dokumentiert Arbeitszeit < @enduml