diff --git a/eatery-service/src/main/java/com/drinkool/dtos/CreateShift.java b/eatery-service/src/main/java/com/drinkool/dtos/CreateShift.java index b43ee20..dbdce77 100644 --- a/eatery-service/src/main/java/com/drinkool/dtos/CreateShift.java +++ b/eatery-service/src/main/java/com/drinkool/dtos/CreateShift.java @@ -1,14 +1,15 @@ package com.drinkool.dtos; import java.time.LocalTime; +import java.util.Date; + import lombok.NoArgsConstructor; import org.eclipse.microprofile.graphql.NonNull; @NoArgsConstructor public class CreateShift { - @NonNull - public String name; + public Date date; @NonNull public LocalTime startTime; @@ -17,4 +18,7 @@ public class CreateShift { public LocalTime endTime; public Integer maxStaff; + + @NonNull + public Integer wage; } diff --git a/eatery-service/src/main/java/com/drinkool/entities/ShiftEntity.java b/eatery-service/src/main/java/com/drinkool/entities/ShiftEntity.java index 5738ced..4cf4874 100644 --- a/eatery-service/src/main/java/com/drinkool/entities/ShiftEntity.java +++ b/eatery-service/src/main/java/com/drinkool/entities/ShiftEntity.java @@ -1,14 +1,18 @@ package com.drinkool.entities; import com.drinkool.lib.entities.BaseEntity; +import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import java.time.LocalTime; -import java.util.UUID; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; @Entity @Table @@ -19,7 +23,7 @@ public class ShiftEntity extends BaseEntity { public EateryEntity eatery; @Column(nullable = false) - public String name; + public Date date; @Column(nullable = false) public LocalTime startTime; @@ -29,4 +33,14 @@ public class ShiftEntity extends BaseEntity { @Column(nullable = true) public Integer maxStaff; + + @Column(nullable = false) + public Integer wage; + + @OneToMany( + mappedBy = "shift", + cascade = CascadeType.ALL, + orphanRemoval = true + ) + public List registeredStaff = new ArrayList<>(); } diff --git a/eatery-service/src/main/java/com/drinkool/entities/ShiftRegistrationEntity.java b/eatery-service/src/main/java/com/drinkool/entities/ShiftRegistrationEntity.java index b1caf35..f12697c 100644 --- a/eatery-service/src/main/java/com/drinkool/entities/ShiftRegistrationEntity.java +++ b/eatery-service/src/main/java/com/drinkool/entities/ShiftRegistrationEntity.java @@ -3,6 +3,8 @@ package com.drinkool.entities; import com.drinkool.lib.entities.BaseEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import java.util.List; @@ -15,7 +17,8 @@ public class ShiftRegistrationEntity extends BaseEntity { @Column(nullable = false) public UUID staffId; - @ManyToOne + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "shiftId") public ShiftEntity shift; public static long countByShift(UUID shiftId) { diff --git a/eatery-service/src/main/java/com/drinkool/services/ShiftService.java b/eatery-service/src/main/java/com/drinkool/services/ShiftService.java index b789b95..db0ca59 100644 --- a/eatery-service/src/main/java/com/drinkool/services/ShiftService.java +++ b/eatery-service/src/main/java/com/drinkool/services/ShiftService.java @@ -116,10 +116,11 @@ public class ShiftService { ShiftEntity shift = new ShiftEntity(); shift.eatery = eatery; - shift.name = input.name; + shift.date = input.date; shift.startTime = input.startTime; shift.endTime = input.endTime; shift.maxStaff = input.maxStaff; + shift.wage = input.wage; if (shift.endTime.isBefore(shift.startTime)) { throw new GraphQLException("InvalidEndTime"); @@ -145,7 +146,6 @@ public class ShiftService { !shift.eatery.ownerId.toString().equals(ownerId) ) throw new GraphQLException("InvalidShiftId"); - shift.name = input.name; shift.startTime = input.startTime; shift.endTime = input.endTime; shift.maxStaff = input.maxStaff; diff --git a/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java b/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java index f9b89e4..29d017c 100644 --- a/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java +++ b/eatery-service/src/test/java/com/drinkool/services/ShiftServiceTest.java @@ -196,7 +196,6 @@ public class ShiftServiceTest { ) { ShiftEntity shift = new ShiftEntity(); shift.eatery = eatery; - shift.name = name; shift.startTime = LocalTime.parse(start); shift.endTime = LocalTime.parse(end); shift.maxStaff = 5;