mirror of
https://github.com/st-tu-dresden-praktikum/swt23w23
synced 2024-06-23 20:53:42 +02:00
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.
103 lines
2.6 KiB
Plaintext
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
|