From 793393b29461ab8ede7504160e3ebe793be4d8c8 Mon Sep 17 00:00:00 2001 From: Christophe Date: Sat, 20 Sep 2025 21:27:03 +0200 Subject: [PATCH] Avant la modification des classes --- claude.json | 8 +-- diagram.puml | 79 +++++++++++++++++++++++++ vi | 162 --------------------------------------------------- 3 files changed, 83 insertions(+), 166 deletions(-) create mode 100644 diagram.puml delete mode 100644 vi diff --git a/claude.json b/claude.json index 18e541f..a75c921 100644 --- a/claude.json +++ b/claude.json @@ -1,28 +1,28 @@ { "employees": [ { - "name": "Marie Dupont", + "name": "Aurélie Antoine", "skills": ["INFIRMIER", "PRELEVEMENT"], "unavailableDates": ["2024-12-25", "2024-12-26"], "undesiredDates": ["2024-12-24", "2024-12-31"], "desiredDates": ["2024-12-20", "2024-12-21"] }, { - "name": "Pierre Martin", + "name": "Cathy Coucou", "skills": ["MEDECIN", "SUPERVISION"], "unavailableDates": ["2024-12-30"], "undesiredDates": ["2024-12-29"], "desiredDates": ["2024-12-22", "2024-12-23"] }, { - "name": "Sophie Bernard", + "name": "Sophie Bernard-Dupont", "skills": ["INFIRMIER", "ACCUEIL"], "unavailableDates": [], "undesiredDates": ["2024-12-25"], "desiredDates": ["2024-12-24", "2024-12-28"] }, { - "name": "Jean Leroy", + "name": "Jean Leroy lili", "skills": ["PRELEVEMENT", "TRANSPORT"], "unavailableDates": ["2024-12-24", "2024-12-25"], "undesiredDates": [], diff --git a/diagram.puml b/diagram.puml new file mode 100644 index 0000000..2cbd5ac --- /dev/null +++ b/diagram.puml @@ -0,0 +1,79 @@ +@startuml EmployeeSchedulingModel + +' Configuration pour un rendu plus lisible +skinparam classAttributeIconSize 0 +skinparam defaultFontName Arial +left to right direction + +' Définition des classes +class Collecte { + - id: String + - start: LocalDateTime + - end: LocalDateTime + - location: String + + getShifts(): List +} + +class Shift { + - id: String + - start: LocalDateTime + - end: LocalDateTime + - location: String + - requiredSkill: String + - employee: Employee + + isOverlappingWithDate(date: LocalDate): boolean +} + +class Employee { + - name: String + - skills: Set + - unavailableDates: Set + - undesiredDates: Set + - desiredDates: Set + + hasSkill(skill: String): boolean +} + +class EmployeeSchedule { + - employees: List + - collectes: List + - score: HardSoftBigDecimalScore + - solverStatus: SolverStatus + + getUnassignedShifts(): List +} + +' Relations entre les classes +Collecte "1" *-- "0..*" Shift : contient > +Shift "1" --o "0..1" Employee : assigné à > +EmployeeSchedule "1" *-- "0..*" Employee : gère > +EmployeeSchedule "1" *-- "0..*" Collecte : organise > + +' Légende pour les cardinalités +legend right +| **Cardinalités** | +|------------------| +| "1" = Un et un seul | +| "0..*" = Zéro ou plusieurs | +| "0..1" = Zéro ou un | +endlegend + +' Notes pour expliquer les contraintes +note top of Shift + Un Shift représente un besoin + pour une compétence spécifique + dans une Collecte. +end note + +note right of Employee + Un Employee peut être assigné + à plusieurs Shifts s'il a + les compétences requises + et est disponible. +end note + +note bottom of Collecte + Une Collecte nécessite plusieurs Shifts, + chacun avec une compétence spécifique. + Exemple : 2 INFIRMIER, 1 MEDECIN, etc. +end note + +@enduml diff --git a/vi b/vi deleted file mode 100644 index 18e541f..0000000 --- a/vi +++ /dev/null @@ -1,162 +0,0 @@ -{ - "employees": [ - { - "name": "Marie Dupont", - "skills": ["INFIRMIER", "PRELEVEMENT"], - "unavailableDates": ["2024-12-25", "2024-12-26"], - "undesiredDates": ["2024-12-24", "2024-12-31"], - "desiredDates": ["2024-12-20", "2024-12-21"] - }, - { - "name": "Pierre Martin", - "skills": ["MEDECIN", "SUPERVISION"], - "unavailableDates": ["2024-12-30"], - "undesiredDates": ["2024-12-29"], - "desiredDates": ["2024-12-22", "2024-12-23"] - }, - { - "name": "Sophie Bernard", - "skills": ["INFIRMIER", "ACCUEIL"], - "unavailableDates": [], - "undesiredDates": ["2024-12-25"], - "desiredDates": ["2024-12-24", "2024-12-28"] - }, - { - "name": "Jean Leroy", - "skills": ["PRELEVEMENT", "TRANSPORT"], - "unavailableDates": ["2024-12-24", "2024-12-25"], - "undesiredDates": [], - "desiredDates": ["2024-12-27", "2024-12-30"] - }, - { - "name": "Anne Moreau", - "skills": ["MEDECIN", "INFIRMIER"], - "unavailableDates": ["2024-12-26"], - "undesiredDates": ["2024-12-31"], - "desiredDates": ["2024-12-21", "2024-12-29"] - }, - { - "name": "Luc Petit", - "skills": ["ACCUEIL", "TRANSPORT"], - "unavailableDates": [], - "undesiredDates": ["2024-12-20"], - "desiredDates": ["2024-12-25", "2024-12-26"] - } - ], - "shifts": [ - { - "id": "shift_001", - "start": "2024-12-20T08:00:00", - "end": "2024-12-20T16:00:00", - "location": "Centre de collecte - Toulouse", - "requiredSkill": "INFIRMIER", - "employee": null - }, - { - "id": "shift_002", - "start": "2024-12-20T14:00:00", - "end": "2024-12-20T22:00:00", - "location": "Centre de collecte - Toulouse", - "requiredSkill": "PRELEVEMENT", - "employee": null - }, - { - "id": "shift_003", - "start": "2024-12-21T06:00:00", - "end": "2024-12-21T14:00:00", - "location": "Hôpital Purpan", - "requiredSkill": "MEDECIN", - "employee": null - }, - { - "id": "shift_004", - "start": "2024-12-21T08:00:00", - "end": "2024-12-21T12:00:00", - "location": "Centre de collecte - Colomiers", - "requiredSkill": "ACCUEIL", - "employee": null - }, - { - "id": "shift_005", - "start": "2024-12-22T09:00:00", - "end": "2024-12-22T17:00:00", - "location": "Centre de collecte - Blagnac", - "requiredSkill": "INFIRMIER", - "employee": null - }, - { - "id": "shift_006", - "start": "2024-12-22T13:00:00", - "end": "2024-12-22T18:00:00", - "location": "Transport mobile", - "requiredSkill": "TRANSPORT", - "employee": null - }, - { - "id": "shift_007", - "start": "2024-12-23T07:00:00", - "end": "2024-12-23T15:00:00", - "location": "Hôpital Rangueil", - "requiredSkill": "MEDECIN", - "employee": null - }, - { - "id": "shift_008", - "start": "2024-12-23T10:00:00", - "end": "2024-12-23T16:00:00", - "location": "Centre de collecte - Toulouse", - "requiredSkill": "PRELEVEMENT", - "employee": null - }, - { - "id": "shift_009", - "start": "2024-12-24T08:00:00", - "end": "2024-12-24T14:00:00", - "location": "Centre de collecte - Colomiers", - "requiredSkill": "INFIRMIER", - "employee": null - }, - { - "id": "shift_010", - "start": "2024-12-27T09:00:00", - "end": "2024-12-27T17:00:00", - "location": "Centre de collecte - Toulouse", - "requiredSkill": "SUPERVISION", - "employee": null - }, - { - "id": "shift_011", - "start": "2024-12-28T08:00:00", - "end": "2024-12-28T16:00:00", - "location": "Centre de collecte - Blagnac", - "requiredSkill": "ACCUEIL", - "employee": null - }, - { - "id": "shift_012", - "start": "2024-12-29T06:00:00", - "end": "2024-12-29T14:00:00", - "location": "Hôpital Purpan", - "requiredSkill": "MEDECIN", - "employee": null - }, - { - "id": "shift_013", - "start": "2024-12-30T10:00:00", - "end": "2024-12-30T18:00:00", - "location": "Transport mobile", - "requiredSkill": "TRANSPORT", - "employee": null - }, - { - "id": "shift_014", - "start": "2024-12-31T08:00:00", - "end": "2024-12-31T16:00:00", - "location": "Centre de collecte - Toulouse", - "requiredSkill": "INFIRMIER", - "employee": null - } - ], - "score": null, - "solverStatus": null -}