diff --git a/backend/src/main/java/org/sejongisc/backend/attendance/entity/Attendance.java b/backend/src/main/java/org/sejongisc/backend/attendance/entity/Attendance.java index d87c9bb0..5219b874 100644 --- a/backend/src/main/java/org/sejongisc/backend/attendance/entity/Attendance.java +++ b/backend/src/main/java/org/sejongisc/backend/attendance/entity/Attendance.java @@ -12,7 +12,6 @@ @Entity @Getter -@Setter @Builder @NoArgsConstructor @AllArgsConstructor @@ -38,25 +37,32 @@ public class Attendance extends BasePostgresEntity { private AttendanceRound attendanceRound; @Enumerated(EnumType.STRING) + @lombok.Setter private AttendanceStatus attendanceStatus; @CreationTimestamp @Column(name = "checked_at") + @lombok.Setter private LocalDateTime checkedAt; @Column(name = "awarded_points") + @lombok.Setter private Integer awardedPoints; @Column(length = 500) + @lombok.Setter private String note; @Embedded + @lombok.Setter private Location checkInLocation; @Column(name = "device_info") + @lombok.Setter private String deviceInfo; @Column(name = "anonymous_user_name", length = 100) + @lombok.Setter private String anonymousUserName; // 지각 여부 계산 / 상태 업데이트 diff --git a/backend/src/main/java/org/sejongisc/backend/attendance/entity/AttendanceSession.java b/backend/src/main/java/org/sejongisc/backend/attendance/entity/AttendanceSession.java index 5c08e17d..f5dc0801 100644 --- a/backend/src/main/java/org/sejongisc/backend/attendance/entity/AttendanceSession.java +++ b/backend/src/main/java/org/sejongisc/backend/attendance/entity/AttendanceSession.java @@ -5,7 +5,6 @@ import lombok.*; import org.sejongisc.backend.common.entity.postgres.BasePostgresEntity; -import java.time.LocalDateTime; import java.time.LocalTime; import java.util.ArrayList; import java.util.List; @@ -50,7 +49,12 @@ public class AttendanceSession extends BasePostgresEntity { @Builder.Default private List rounds = new ArrayList<>(); - @OneToMany(mappedBy = "attendanceSession", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "attendanceSession", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true) + @JsonManagedReference + @Builder.Default + private List sessionUsers = new ArrayList<>(); + + @OneToMany(mappedBy = "attendanceSession", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true) @JsonManagedReference @Builder.Default private List attendances = new ArrayList<>(); diff --git a/backend/src/main/java/org/sejongisc/backend/attendance/entity/SessionUser.java b/backend/src/main/java/org/sejongisc/backend/attendance/entity/SessionUser.java index 98c0c3c9..dc646e0b 100644 --- a/backend/src/main/java/org/sejongisc/backend/attendance/entity/SessionUser.java +++ b/backend/src/main/java/org/sejongisc/backend/attendance/entity/SessionUser.java @@ -1,10 +1,8 @@ package org.sejongisc.backend.attendance.entity; +import com.fasterxml.jackson.annotation.JsonBackReference; import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; +import lombok.*; import org.sejongisc.backend.common.entity.postgres.BasePostgresEntity; import org.sejongisc.backend.user.entity.User; @@ -43,6 +41,7 @@ public class SessionUser extends BasePostgresEntity { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "session_id", nullable = false) + @JsonBackReference private AttendanceSession attendanceSession; @ManyToOne(fetch = FetchType.LAZY) @@ -50,6 +49,7 @@ public class SessionUser extends BasePostgresEntity { private User user; @Column(name = "user_name", length = 100, nullable = false) + @lombok.Setter private String userName; // 저장 시점의 user.name 캐시 (나중에 user.name이 변경되어도 유지) /**