swt23w23/src/main/java/catering/staff/Employee.java

76 lines
1.3 KiB
Java
Raw Normal View History

// SPDX-License-Identifier: AGPL-3.0-or-later
// SPDX-FileCopyrightText: 2023-2024 swt23w23
2023-11-10 17:09:39 +01:00
package catering.staff;
2023-12-04 11:34:07 +01:00
import static org.salespointframework.core.Currencies.EURO;
import java.util.Objects;
2023-12-04 11:34:07 +01:00
import javax.money.MonetaryAmount;
import org.javamoney.moneta.Money;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
@Entity
public class Employee {
2023-11-10 17:09:39 +01:00
2023-11-21 16:02:42 +01:00
private String name;
private JobType job;
private @Id @GeneratedValue Long id;
2023-12-04 11:34:07 +01:00
private MonetaryAmount wage;
protected Employee() {
// No-argument constructor for JPA
}
2023-11-10 17:09:39 +01:00
2023-12-04 11:34:07 +01:00
public Employee(String name, JobType job, MonetaryAmount wage) {
2023-11-10 17:09:39 +01:00
this.name = name;
this.job = job;
2023-12-04 11:34:07 +01:00
this.wage = wage;
2023-11-10 17:09:39 +01:00
}
public Long getId() {
2023-11-10 17:09:39 +01:00
return id;
}
public String getName() {
return name;
}
2023-11-21 16:02:42 +01:00
public JobType getJob() {
2023-11-10 17:09:39 +01:00
return job;
}
2023-12-04 11:34:07 +01:00
public Double getWage() {
return wage.getNumber().doubleValue();
}
2023-11-10 17:09:39 +01:00
public void setName(String name) {
this.name = name;
}
2023-11-21 16:02:42 +01:00
public void setJob(JobType job) {
2023-11-10 17:09:39 +01:00
this.job = job;
}
2023-12-04 11:34:07 +01:00
public void setWage(Double wage) {
this.wage = Money.of(wage, EURO);
}
@Override
public int hashCode() {
return Objects.hash(Employee.class, getId());
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Employee other) {
return id.equals(other.id);
}
return false;
}
2023-11-10 17:09:39 +01:00
}