diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/CertType.java b/src/main/java/com/project/growfit/domain/Goal/entity/CertType.java deleted file mode 100644 index 625d923..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/CertType.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -public enum CertType { - TIMER, CERTIFICATION, DIET, WEIGHT -} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/GoalCertDays.java b/src/main/java/com/project/growfit/domain/Goal/entity/Certification.java similarity index 67% rename from src/main/java/com/project/growfit/domain/Goal/entity/GoalCertDays.java rename to src/main/java/com/project/growfit/domain/Goal/entity/Certification.java index 8e5ee53..fd13c5b 100644 --- a/src/main/java/com/project/growfit/domain/Goal/entity/GoalCertDays.java +++ b/src/main/java/com/project/growfit/domain/Goal/entity/Certification.java @@ -1,6 +1,5 @@ package com.project.growfit.domain.Goal.entity; -import com.project.growfit.global.entity.BaseEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -10,25 +9,29 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; +import java.time.LocalDateTime; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; @Getter @Entity -@Table(name = "goal_cert_days") +@Table(name = "goal") @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class GoalCertDays extends BaseEntity { +public class Certification { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "cert_day_id") + @Column(name = "id") private Long id; - @Column(name = "day", nullable = false, length = 5) - private String day; + @Column(name = "image_url", nullable = false) + private String imageUrl; + + @Column(name = "certified_at", nullable = false) + private LocalDateTime certifiedAt; @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "goal_id") + @JoinColumn(name = "goal_id", nullable = false) private Goal goal; } diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/Goal.java b/src/main/java/com/project/growfit/domain/Goal/entity/Goal.java index 69e14ea..dea1896 100644 --- a/src/main/java/com/project/growfit/domain/Goal/entity/Goal.java +++ b/src/main/java/com/project/growfit/domain/Goal/entity/Goal.java @@ -31,26 +31,20 @@ public class Goal extends BaseEntity { @Column(name = "goal_id") private Long id; - @Column(name = "name", nullable = false, length = 100) + @Column(name = "name", length = 100, nullable = false) private String name; - @Column(name = "count", nullable = false) - private int count; + @Column(name = "icon_id", nullable = false) + private int iconId; - @Column(name = "cert_type", nullable = false) + @Column(name = "status", nullable = false) @Enumerated(EnumType.STRING) - private CertType certType; - - @Column(name = "state", nullable = false) - private GoalState state; + private GoalStatus status; @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "goal_type_id") - private GoalType goalType; - - @OneToMany(mappedBy = "goal", cascade = CascadeType.ALL, orphanRemoval = true) - private List certDaysList = new ArrayList<>(); + @JoinColumn(name = "weekly_goal_id", nullable = false) + private WeeklyGoal weeklyGoal; @OneToMany(mappedBy = "goal", cascade = CascadeType.ALL, orphanRemoval = true) - private List goalAccList = new ArrayList<>(); + private List certificationList = new ArrayList<>(); } diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/GoalAcc.java b/src/main/java/com/project/growfit/domain/Goal/entity/GoalAcc.java deleted file mode 100644 index b6ebc69..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/GoalAcc.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -import com.project.growfit.global.entity.BaseEntity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.OneToOne; -import jakarta.persistence.Table; -import java.time.LocalDate; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@Entity -@Table(name = "goal_acc") -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class GoalAcc extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "goal_acc_id") - private Long id; - - @Column(name = "weekdays", nullable = false) - private LocalDate weekdays; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "goal_id") - private Goal goal; - - @OneToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "goal_progress_id") - private GoalProgress goalProgress; -} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/GoalBoard.java b/src/main/java/com/project/growfit/domain/Goal/entity/GoalBoard.java deleted file mode 100644 index 107aff4..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/GoalBoard.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -import com.project.growfit.domain.User.entity.Child; -import com.project.growfit.global.entity.BaseEntity; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; -import jakarta.persistence.OneToOne; -import jakarta.persistence.Table; -import java.util.ArrayList; -import java.util.List; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@Entity -@Table(name = "goal_board") -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class GoalBoard extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "goal_board_id") - private Long id; - - @OneToOne(mappedBy = "goalBoard", cascade = CascadeType.ALL, orphanRemoval = true) - private Child child; - - @OneToMany(mappedBy = "goalBoard", cascade = CascadeType.ALL, orphanRemoval = true) - private List goalTypeList = new ArrayList<>(); -} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/GoalProgress.java b/src/main/java/com/project/growfit/domain/Goal/entity/GoalProgress.java deleted file mode 100644 index e480154..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/GoalProgress.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -import com.project.growfit.domain.Diet.entity.Sticker; -import com.project.growfit.global.entity.BaseEntity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.time.LocalDateTime; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@Entity -@Table(name = "goal_progress") -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class GoalProgress extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "goal_progress_id") - private Long id; - - @Column(name = "progress_date", nullable = false) - private LocalDateTime progressDate; - - @Column(name = "success_status", nullable = false) - private SuccessStatus successStatus; - - @Column(name = "sticker") - private Sticker sticker; - - @Column(name = "photo") - private String photo; - - @Column(name = "weight") - private long weight; -} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/GoalState.java b/src/main/java/com/project/growfit/domain/Goal/entity/GoalState.java deleted file mode 100644 index 5e35070..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/GoalState.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -public enum GoalState { - BEFORE_PROGRESSING, PROGRESSING, COMPLETE - } diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/GoalStatus.java b/src/main/java/com/project/growfit/domain/Goal/entity/GoalStatus.java new file mode 100644 index 0000000..9859cc7 --- /dev/null +++ b/src/main/java/com/project/growfit/domain/Goal/entity/GoalStatus.java @@ -0,0 +1,5 @@ +package com.project.growfit.domain.Goal.entity; + +public enum GoalStatus { + PENDING, PROGRESS, COMPLETE +} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/PeriodType.java b/src/main/java/com/project/growfit/domain/Goal/entity/PeriodType.java deleted file mode 100644 index e0d2c6f..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/PeriodType.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -public enum PeriodType { - WEEKLY, MONTHLY -} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/RecommendGoal.java b/src/main/java/com/project/growfit/domain/Goal/entity/RecommendGoal.java deleted file mode 100644 index fec6ad4..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/RecommendGoal.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -import com.project.growfit.global.entity.BaseEntity; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Getter -@Entity -@Table(name = "recommend_goal") -@NoArgsConstructor(access = AccessLevel.PROTECTED) -public class RecommendGoal extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "recommend_goal_id") - private Long id; - - @Column(name = "name", nullable = false, length = 100) - private String name; - - @Column(name = "image", nullable = false) - private String image; - - @Column(name = "type", nullable = false) - @Enumerated(EnumType.STRING) - private PeriodType type; -} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/SuccessStatus.java b/src/main/java/com/project/growfit/domain/Goal/entity/SuccessStatus.java deleted file mode 100644 index fbc5ddd..0000000 --- a/src/main/java/com/project/growfit/domain/Goal/entity/SuccessStatus.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.project.growfit.domain.Goal.entity; - -public enum SuccessStatus { - UNCHECK, PROGRESSING, SUCCESS, FAIL, WAIT_COMPLETE -} diff --git a/src/main/java/com/project/growfit/domain/Goal/entity/GoalType.java b/src/main/java/com/project/growfit/domain/Goal/entity/WeeklyGoal.java similarity index 67% rename from src/main/java/com/project/growfit/domain/Goal/entity/GoalType.java rename to src/main/java/com/project/growfit/domain/Goal/entity/WeeklyGoal.java index 99a7f24..c43e9a3 100644 --- a/src/main/java/com/project/growfit/domain/Goal/entity/GoalType.java +++ b/src/main/java/com/project/growfit/domain/Goal/entity/WeeklyGoal.java @@ -1,11 +1,10 @@ package com.project.growfit.domain.Goal.entity; +import com.project.growfit.domain.User.entity.Parent; import com.project.growfit.global.entity.BaseEntity; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; @@ -23,13 +22,13 @@ @Getter @Entity -@Table(name = "goal_type") +@Table(name = "weekly_goal") @NoArgsConstructor(access = AccessLevel.PROTECTED) -public class GoalType extends BaseEntity { +public class WeeklyGoal extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "goal_type_id") + @Column(name = "weekly_goal_id") private Long id; @Column(name = "start_date", nullable = false) @@ -38,14 +37,16 @@ public class GoalType extends BaseEntity { @Column(name = "end_date", nullable = false) private LocalDate endDate; - @Column(name = "type", nullable = false) - @Enumerated(EnumType.STRING) - private PeriodType type; + @Column(name = "certification_count", nullable = false) + private int certificationCount; + + @Column(name = "is_letter_sent", nullable = false) + private boolean isLetterSent = false; @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "goal_board_id") - private GoalBoard goalBoard; + @JoinColumn(name = "parent_id", nullable = false) + private Parent parent; - @OneToMany(mappedBy = "goalType", cascade = CascadeType.ALL, orphanRemoval = true) + @OneToMany(mappedBy = "weeklyGoal", cascade = CascadeType.ALL, orphanRemoval = true) private List goalList = new ArrayList<>(); } diff --git a/src/main/java/com/project/growfit/domain/User/entity/Child.java b/src/main/java/com/project/growfit/domain/User/entity/Child.java index 9f12112..d91a8c7 100644 --- a/src/main/java/com/project/growfit/domain/User/entity/Child.java +++ b/src/main/java/com/project/growfit/domain/User/entity/Child.java @@ -1,7 +1,6 @@ package com.project.growfit.domain.User.entity; import com.project.growfit.domain.Diet.entity.Diet; -import com.project.growfit.domain.Goal.entity.GoalBoard; import com.project.growfit.global.entity.BaseEntity; import jakarta.persistence.*; import lombok.AccessLevel; @@ -57,10 +56,6 @@ public class Child extends BaseEntity { @OneToMany(mappedBy = "child", cascade = CascadeType.ALL, orphanRemoval = true) private List dietList = new ArrayList<>(); - @OneToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "goal_board_id") - private GoalBoard goalBoard; - @OneToMany(mappedBy = "child", cascade = CascadeType.ALL, orphanRemoval = true) private List analysisList = new ArrayList<>(); diff --git a/src/main/java/com/project/growfit/domain/User/entity/Parent.java b/src/main/java/com/project/growfit/domain/User/entity/Parent.java index 4f0834b..d86acf5 100644 --- a/src/main/java/com/project/growfit/domain/User/entity/Parent.java +++ b/src/main/java/com/project/growfit/domain/User/entity/Parent.java @@ -1,5 +1,6 @@ package com.project.growfit.domain.User.entity; +import com.project.growfit.domain.Goal.entity.WeeklyGoal; import com.project.growfit.domain.board.dto.request.ProfileRequestDto; import com.project.growfit.domain.board.entity.Bookmark; import com.project.growfit.domain.board.entity.Comment; @@ -63,6 +64,9 @@ public class Parent extends BaseEntity { @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, orphanRemoval = true) private List bookmarkList = new ArrayList<>(); + @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, orphanRemoval = true) + private List weeklyGoalList = new ArrayList<>(); + public Parent(String email, String name, String profileImage, String provider, ROLE role) { this.email = email; this.nickname = name; diff --git a/src/main/java/com/project/growfit/domain/notice/entity/NoticeType.java b/src/main/java/com/project/growfit/domain/notice/entity/NoticeType.java index 23c6b0f..8dd0a81 100644 --- a/src/main/java/com/project/growfit/domain/notice/entity/NoticeType.java +++ b/src/main/java/com/project/growfit/domain/notice/entity/NoticeType.java @@ -1,9 +1,6 @@ package com.project.growfit.domain.notice.entity; public enum NoticeType { - LETTER, GOAL_COMPLETED, // 아이가 주간 목표를 모두 달성 완료한 경우: 아이 -> 부모 PRAISE_LETTER, // 부모가 아이에게 편지를 작성 완료한 경우: 부모 -> 아이 - MEAL, - GOAL }