2023-11-08 16:36:48 +01:00
|
|
|
@startuml
|
|
|
|
|
|
|
|
skinparam linetype ortho
|
|
|
|
skinparam groupInheritance 2
|
|
|
|
|
2023-11-23 17:15:43 +01:00
|
|
|
package Spring {
|
|
|
|
class CrudRepository
|
|
|
|
class Streamable
|
2023-11-28 09:48:06 +01:00
|
|
|
class Errors
|
|
|
|
class Model
|
2023-11-08 16:36:48 +01:00
|
|
|
}
|
|
|
|
|
2023-12-02 16:31:58 +01:00
|
|
|
package catering.order {
|
|
|
|
class OrderManagement
|
|
|
|
class CustomOrder
|
|
|
|
}
|
|
|
|
|
2023-11-23 17:15:43 +01:00
|
|
|
package catering.staff {
|
2023-11-08 16:36:48 +01:00
|
|
|
|
2023-11-23 17:15:43 +01:00
|
|
|
class Employee {
|
2023-11-08 16:36:48 +01:00
|
|
|
- name: String
|
2023-11-23 17:15:43 +01:00
|
|
|
- id: Long
|
|
|
|
+ Employee()
|
|
|
|
+ Employee(name: String, job: JobType)
|
|
|
|
+ getId(): Long
|
2023-11-08 16:36:48 +01:00
|
|
|
+ getName(): String
|
2023-11-23 17:15:43 +01:00
|
|
|
+ getJob(): JobType
|
|
|
|
+ setName(name: String): void
|
|
|
|
+ setJob(job: JobType): void
|
|
|
|
}
|
|
|
|
|
|
|
|
Employee --> JobType : -job
|
|
|
|
|
|
|
|
enum JobType {
|
|
|
|
COOK
|
|
|
|
SERVICE
|
2023-11-08 16:36:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
class StaffController {
|
|
|
|
+ StaffController(staffRepository: StaffRepository)
|
2023-11-23 17:15:43 +01:00
|
|
|
+ getStaff(model: Model): String
|
2023-11-28 09:48:06 +01:00
|
|
|
+ getStaff(model: Model, form: StaffForm): String
|
2023-11-23 17:15:43 +01:00
|
|
|
+ removeEmployee(employee: Employee, model: Model): String
|
2023-11-28 09:48:06 +01:00
|
|
|
+ addEmployee(form:StaffForm, result:Errors, model: Model): String
|
2023-11-23 17:15:43 +01:00
|
|
|
+ editEmployee(employee: Employee, model Model): String
|
2023-11-28 09:48:06 +01:00
|
|
|
+ editEmployee(model Model, form:StaffForm): String
|
|
|
|
+ updateEmployee(employee: Employee, form:StaffForm): String
|
2023-11-08 16:36:48 +01:00
|
|
|
}
|
2023-11-23 17:15:43 +01:00
|
|
|
StaffController --> StaffManagement : -staffManagement
|
|
|
|
StaffController ..> Employee
|
2023-11-28 09:48:06 +01:00
|
|
|
StaffController ..> StaffForm
|
|
|
|
StaffController ..> Model
|
|
|
|
StaffController ..> Errors
|
2023-11-23 17:15:43 +01:00
|
|
|
|
|
|
|
class StaffManagement {
|
2023-12-02 16:31:58 +01:00
|
|
|
+ StaffManagement(staffRepository: StaffRepository, orderManagement:OrderManagement<CustomOrder>)
|
2023-11-23 17:15:43 +01:00
|
|
|
+ findById(id: Long): Optional<Employee>
|
|
|
|
+ save(employee: Employee): Employee
|
|
|
|
+ findAll(): Streamable<Employee>
|
|
|
|
+ delete(id: Long): void
|
2023-12-02 16:31:58 +01:00
|
|
|
+ getAvailableStaffByJob(job: JobType, start:LocalDateTime, finish:LocalDateTime): Set<Employee>
|
2023-11-08 16:36:48 +01:00
|
|
|
}
|
2023-11-23 17:15:43 +01:00
|
|
|
StaffManagement --> StaffRepository : -staffRepository
|
2023-12-02 16:31:58 +01:00
|
|
|
StaffManagement --> OrderManagement : -orderManagement
|
|
|
|
StaffManagement ..> Set
|
2023-11-08 16:36:48 +01:00
|
|
|
|
2023-11-23 17:15:43 +01:00
|
|
|
interface StaffRepository {
|
|
|
|
+ findAll(): Streamable<Employee>
|
2023-11-08 16:36:48 +01:00
|
|
|
}
|
2023-11-23 17:15:43 +01:00
|
|
|
StaffRepository --|> CrudRepository : <<extends>>
|
|
|
|
StaffRepository ..|> Streamable
|
|
|
|
StaffRepository o-- Employee
|
2023-11-08 16:36:48 +01:00
|
|
|
|
2023-11-28 09:48:06 +01:00
|
|
|
class StaffForm {
|
|
|
|
- name: String
|
|
|
|
+ StaffForm(): void
|
|
|
|
+ getName(): String
|
|
|
|
+ getJob(): JobType
|
|
|
|
+ setName(name:String): void
|
|
|
|
+ setJob(job:JobType): void
|
|
|
|
+ validate(e:Errors): void
|
|
|
|
}
|
|
|
|
StaffForm ..> JobType : -job
|
2023-11-08 16:36:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@enduml
|