swt23w23/src/main/asciidoc/models/design/staff.puml
Simon Bruder bac025fd0a
Make project REUSE compliant
This finally makes the licensing under AGPL-3.0-or-later explicit after
I got the okay from the kickstart source owners.

This also checks the REUSE compliance in a pre commit hook, and
therefore also in CI.
2023-12-11 17:59:14 +01:00

103 lines
2.6 KiB
Plaintext

' SPDX-License-Identifier: AGPL-3.0-or-later
' SPDX-FileCopyrightText: 2023 swt23w23
@startuml
skinparam linetype ortho
skinparam groupInheritance 2
package javax.money {
class MonetaryAmount
class Money
class EURO
}
package Spring {
class CrudRepository
class Streamable
class Errors
class Model
}
package catering.order {
class OrderManagement
class CustomOrder
}
package catering.staff {
class Employee {
- name: String
- id: Long
+ Employee()
+ Employee(name: String, job: JobType, wage: MonetaryAmount)
+ getId(): Long
+ getName(): String
+ getJob(): JobType
+ getWage(): Double
+ setName(name: String): void
+ setJob(job: JobType): void
+ setWage(wage: Double): void
}
Employee --> JobType : -job
Employee --> MonetaryAmount : -wage
enum JobType {
COOK
SERVICE
}
class StaffController {
+ StaffController(staffRepository: StaffRepository)
+ getStaff(model: Model, month:Optional<YearMonth>): String
+ getStaff(model: Model, form: StaffForm, month:Optional<YearMonth>): String
+ removeEmployee(employee: Employee, model: Model): String
+ addEmployee(form:StaffForm, result:Errors, model: Model): String
+ editEmployee(employee: Employee, model Model): String
+ editEmployee(model Model, form:StaffForm): String
+ updateEmployee(employee: Employee, form:StaffForm): String
}
StaffController --> StaffManagement : -staffManagement
StaffController ..> Employee
StaffController ..> StaffForm
StaffController ..> Model
StaffController ..> Errors
StaffController ..> Money
StaffController ..> EURO
class StaffManagement {
+ StaffManagement(staffRepository: StaffRepository, orderManagement:OrderManagement<CustomOrder>)
+ findById(id: Long): Optional<Employee>
+ save(employee: Employee): Employee
+ findAll(): Streamable<Employee>
+ delete(id: Long): void
+ getAvailableStaffByJob(job: JobType, start:LocalDateTime, finish:LocalDateTime): Set<Employee>
+ getWorkingHourseByemployee(e: Employee,month: YearMonth): double
}
StaffManagement --> StaffRepository : -staffRepository
StaffManagement --> OrderManagement : -orderManagement
StaffManagement ..> Set
interface StaffRepository {
+ findAll(): Streamable<Employee>
}
StaffRepository --|> CrudRepository : <<extends>>
StaffRepository ..|> Streamable
StaffRepository o-- Employee
class StaffForm {
- name: String
+ StaffForm(): void
+ getName(): String
+ getJob(): JobType
+ getWage(): Double
+ setName(name:String): void
+ setJob(job:JobType): void
+ setWage( wage:Double): void
+ validate(e:Errors): void
}
StaffForm ..> JobType : -job
}
@enduml