@startuml !define DARK_BLUE #264653 !define ORANGE #F4A261 !define YELLOW #E9C46A !define LIGHT_BLUE #2A9D8F skinparam class { BackgroundColor DARK_BLUE ArrowColor DARK_BLUE BorderColor DARK_BLUE FontColor WHITE } skinparam arrow { Color DARK_BLUE } ' Définition des classes class Employee { + name : String + skills : Set } class BloodDrive { + id : UUID + location : String + date : LocalDate -- + <> shifts : List } class Shift { + id : UUID + start : LocalDateTime + end : LocalDateTime + requiredSkill : Skill } enum Skill { + NURSE + DOCTOR + DRIVER + RECEPTIONIST } ' Définition des relations BloodDrive "1" --> "1..*" Shift : <> Shift "1" --> "1" Employee : <> Shift "1" --> "1" Skill : <> Employee "1" -- "0..*" Shift : <> Employee "1" -- "0..*" Skill : <> ' Notes explicatives note top of BloodDrive Nouvelle entité pour regrouper tous les shifts d'une même collecte. end note note top of Shift Chaque rôle (infirmier, médecin) est un shift distinct avec ses propres horaires. end note @enduml