From 4d31136c29a6d61cdc3c7da5fb0d1b9c8bcc245f Mon Sep 17 00:00:00 2001 From: 7beunseo Date: Thu, 10 Oct 2024 12:31:18 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20[FEAT]=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=20=EA=B8=B0=EB=B3=B8=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/umc/spring/domain/Alarm.java | 22 ++++++ .../main/java/umc/spring/domain/Comment.java | 25 +++++++ .../java/umc/spring/domain/CommentImage.java | 19 +++++ .../java/umc/spring/domain/CommentReply.java | 19 +++++ .../java/umc/spring/domain/FoodCategory.java | 19 +++++ .../main/java/umc/spring/domain/Inquiry.java | 27 +++++++ .../java/umc/spring/domain/InquiryImage.java | 18 +++++ .../java/umc/spring/domain/InquiryReply.java | 18 +++++ .../main/java/umc/spring/domain/Location.java | 19 +++++ .../main/java/umc/spring/domain/Market.java | 38 ++++++++++ .../java/umc/spring/domain/MarketImage.java | 16 +++++ .../main/java/umc/spring/domain/Mission.java | 24 +++++++ .../src/main/java/umc/spring/domain/User.java | 70 +++++++++++++++++++ .../java/umc/spring/domain/UserMission.java | 21 ++++++ .../umc/spring/domain/common/BaseEntity.java | 22 ++++++ .../java/umc/spring/domain/enums/Gender.java | 5 ++ .../spring/domain/enums/InquiryStatus.java | 5 ++ .../umc/spring/domain/enums/InquiryType.java | 5 ++ .../umc/spring/domain/enums/MemberStatus.java | 5 ++ .../spring/domain/enums/MissionStatus.java | 5 ++ .../umc/spring/domain/enums/SocialType.java | 5 ++ 21 files changed, 407 insertions(+) create mode 100644 spring/src/main/java/umc/spring/domain/Alarm.java create mode 100644 spring/src/main/java/umc/spring/domain/Comment.java create mode 100644 spring/src/main/java/umc/spring/domain/CommentImage.java create mode 100644 spring/src/main/java/umc/spring/domain/CommentReply.java create mode 100644 spring/src/main/java/umc/spring/domain/FoodCategory.java create mode 100644 spring/src/main/java/umc/spring/domain/Inquiry.java create mode 100644 spring/src/main/java/umc/spring/domain/InquiryImage.java create mode 100644 spring/src/main/java/umc/spring/domain/InquiryReply.java create mode 100644 spring/src/main/java/umc/spring/domain/Location.java create mode 100644 spring/src/main/java/umc/spring/domain/Market.java create mode 100644 spring/src/main/java/umc/spring/domain/MarketImage.java create mode 100644 spring/src/main/java/umc/spring/domain/Mission.java create mode 100644 spring/src/main/java/umc/spring/domain/User.java create mode 100644 spring/src/main/java/umc/spring/domain/UserMission.java create mode 100644 spring/src/main/java/umc/spring/domain/common/BaseEntity.java create mode 100644 spring/src/main/java/umc/spring/domain/enums/Gender.java create mode 100644 spring/src/main/java/umc/spring/domain/enums/InquiryStatus.java create mode 100644 spring/src/main/java/umc/spring/domain/enums/InquiryType.java create mode 100644 spring/src/main/java/umc/spring/domain/enums/MemberStatus.java create mode 100644 spring/src/main/java/umc/spring/domain/enums/MissionStatus.java create mode 100644 spring/src/main/java/umc/spring/domain/enums/SocialType.java diff --git a/spring/src/main/java/umc/spring/domain/Alarm.java b/spring/src/main/java/umc/spring/domain/Alarm.java new file mode 100644 index 0000000..49c066c --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/Alarm.java @@ -0,0 +1,22 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class Alarm extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "content") // 255 + private String content; + + @Column(name = "is_read") + private Boolean isRead; +} diff --git a/spring/src/main/java/umc/spring/domain/Comment.java b/spring/src/main/java/umc/spring/domain/Comment.java new file mode 100644 index 0000000..57a49fe --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/Comment.java @@ -0,0 +1,25 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class Comment extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "writer", length = 20) + private String writer; + + @Column(name = "star") + private Float star; + + @Column(name = "content") // 기본 255자 + private String content; +} diff --git a/spring/src/main/java/umc/spring/domain/CommentImage.java b/spring/src/main/java/umc/spring/domain/CommentImage.java new file mode 100644 index 0000000..9be6a3c --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/CommentImage.java @@ -0,0 +1,19 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class CommentImage extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "image_url", length = 40) + private String imageUrl; +} diff --git a/spring/src/main/java/umc/spring/domain/CommentReply.java b/spring/src/main/java/umc/spring/domain/CommentReply.java new file mode 100644 index 0000000..a31384d --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/CommentReply.java @@ -0,0 +1,19 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class CommentReply extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "content") // 255자 + private String content; +} diff --git a/spring/src/main/java/umc/spring/domain/FoodCategory.java b/spring/src/main/java/umc/spring/domain/FoodCategory.java new file mode 100644 index 0000000..1704ffe --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/FoodCategory.java @@ -0,0 +1,19 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class FoodCategory extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "name", length = 20) + private String name; +} diff --git a/spring/src/main/java/umc/spring/domain/Inquiry.java b/spring/src/main/java/umc/spring/domain/Inquiry.java new file mode 100644 index 0000000..a050f35 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/Inquiry.java @@ -0,0 +1,27 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; +import umc.spring.domain.enums.InquiryStatus; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class Inquiry extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "title", length = 127) + private String title; + + @Column(name = "content") // 255자 + private String content; + + @Enumerated(EnumType.STRING) + @Column(name = "status") + private InquiryStatus status; +} diff --git a/spring/src/main/java/umc/spring/domain/InquiryImage.java b/spring/src/main/java/umc/spring/domain/InquiryImage.java new file mode 100644 index 0000000..7a9bae7 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/InquiryImage.java @@ -0,0 +1,18 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class InquiryImage { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "image_url") + private String imageUrl; +} diff --git a/spring/src/main/java/umc/spring/domain/InquiryReply.java b/spring/src/main/java/umc/spring/domain/InquiryReply.java new file mode 100644 index 0000000..ba57492 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/InquiryReply.java @@ -0,0 +1,18 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class InquiryReply { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "content") + private String content; +} diff --git a/spring/src/main/java/umc/spring/domain/Location.java b/spring/src/main/java/umc/spring/domain/Location.java new file mode 100644 index 0000000..0f7edf2 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/Location.java @@ -0,0 +1,19 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class Location extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "name", length = 20) + private String name; +} diff --git a/spring/src/main/java/umc/spring/domain/Market.java b/spring/src/main/java/umc/spring/domain/Market.java new file mode 100644 index 0000000..104a578 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/Market.java @@ -0,0 +1,38 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +import java.time.LocalDate; +import java.time.LocalTime; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class Market extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "name", length = 40) + private String name; + + @Column(name = "type", length = 20) + private String type; // 중식당인지 일식인지 ... -> 일단 텍스트 입력으로 가정 + + @Column(name = "start_time") + private LocalTime startTime; + + @Column(name = "end_time") + private LocalTime endTime; + + @Column(name = "address", length = 127) + private String address; + + @Column(name = "star") + private Float star; +} diff --git a/spring/src/main/java/umc/spring/domain/MarketImage.java b/spring/src/main/java/umc/spring/domain/MarketImage.java new file mode 100644 index 0000000..6782de2 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/MarketImage.java @@ -0,0 +1,16 @@ +package umc.spring.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import umc.spring.domain.common.BaseEntity; + +public class MarketImage extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "image_url") + private String imageUrl; +} diff --git a/spring/src/main/java/umc/spring/domain/Mission.java b/spring/src/main/java/umc/spring/domain/Mission.java new file mode 100644 index 0000000..8cf9f0c --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/Mission.java @@ -0,0 +1,24 @@ +package umc.spring.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import umc.spring.domain.common.BaseEntity; + +import java.time.LocalDate; + +public class Mission extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "content") // 기본 길이 255 + private String content; + + @Column(name = "end_date") + private LocalDate endDate; + + @Column(name = "point") + private Integer point; +} diff --git a/spring/src/main/java/umc/spring/domain/User.java b/spring/src/main/java/umc/spring/domain/User.java new file mode 100644 index 0000000..dbb22a0 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/User.java @@ -0,0 +1,70 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; +import umc.spring.domain.enums.Gender; +import umc.spring.domain.enums.MemberStatus; +import umc.spring.domain.enums.SocialType; + +import java.time.LocalDate; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class User extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Enumerated(EnumType.STRING) + @Column(name = "social_type") + private SocialType socialType; + + @Column(name = "username", nullable = false, length = 20) + private String username; + + @Column(name = "birth") + private LocalDate birth; + + @Column(name = "address", nullable = false, length = 40) // erd 20 -> 40으로 늘림 + private String address; + + // private String specAddress; + + @Enumerated(EnumType.STRING) + @Column(name = "gender", length = 10) + private Gender gender; + + @Column(name = "email") + private String email; + + @Column(name = "point", columnDefinition = "BIGINT DEFAULT 0") + private Long point = 0L; // 초기값 0 + + @Column(name = "phone_num") + private String phoneNum; + + @Column(name = "phone_valid") + private String phoneValid; + + // 알림 권한 3개 + @Column(name = "new_event_agree") + private String newEventAgree; + + @Column(name = "review_reply_alarm") + private String reviewReplyAlarm; + + @Column(name = "inquiry_answer_alarm") + private String inQuriyAnswerAlarm; + + @Enumerated(EnumType.STRING) + @Column(name = "status") + private MemberStatus status; + + @Column(name = "inactive_date") + private LocalDate inactiveDate; +} diff --git a/spring/src/main/java/umc/spring/domain/UserMission.java b/spring/src/main/java/umc/spring/domain/UserMission.java new file mode 100644 index 0000000..279a99c --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/UserMission.java @@ -0,0 +1,21 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; +import umc.spring.domain.enums.MemberStatus; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class UserMission extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Enumerated(EnumType.STRING) + @Column(name = "status") + private MemberStatus status; +} diff --git a/spring/src/main/java/umc/spring/domain/common/BaseEntity.java b/spring/src/main/java/umc/spring/domain/common/BaseEntity.java new file mode 100644 index 0000000..61c9d3e --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/common/BaseEntity.java @@ -0,0 +1,22 @@ +package umc.spring.domain.common; + +import jakarta.persistence.EntityListeners; +import jakarta.persistence.MappedSuperclass; +import lombok.Getter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import java.time.LocalDateTime; + +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +@Getter +public abstract class BaseEntity { + + @CreatedDate + private LocalDateTime createdAt; + + @LastModifiedDate + private LocalDateTime updatedAt; +} diff --git a/spring/src/main/java/umc/spring/domain/enums/Gender.java b/spring/src/main/java/umc/spring/domain/enums/Gender.java new file mode 100644 index 0000000..b74c14e --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/enums/Gender.java @@ -0,0 +1,5 @@ +package umc.spring.domain.enums; + +public enum Gender { + MALE, FEMALE +} diff --git a/spring/src/main/java/umc/spring/domain/enums/InquiryStatus.java b/spring/src/main/java/umc/spring/domain/enums/InquiryStatus.java new file mode 100644 index 0000000..a6756eb --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/enums/InquiryStatus.java @@ -0,0 +1,5 @@ +package umc.spring.domain.enums; + +public enum InquiryStatus { + WAITING, IN_PROGRESS, COMPLETE +} diff --git a/spring/src/main/java/umc/spring/domain/enums/InquiryType.java b/spring/src/main/java/umc/spring/domain/enums/InquiryType.java new file mode 100644 index 0000000..25ecd4a --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/enums/InquiryType.java @@ -0,0 +1,5 @@ +package umc.spring.domain.enums; + +public enum InquiryType { + 피그마에, 없네요, 무슨내용이, 들어갈까요 +} diff --git a/spring/src/main/java/umc/spring/domain/enums/MemberStatus.java b/spring/src/main/java/umc/spring/domain/enums/MemberStatus.java new file mode 100644 index 0000000..b416298 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/enums/MemberStatus.java @@ -0,0 +1,5 @@ +package umc.spring.domain.enums; + +public enum MemberStatus { + ACTIVE, INACTIVE +} diff --git a/spring/src/main/java/umc/spring/domain/enums/MissionStatus.java b/spring/src/main/java/umc/spring/domain/enums/MissionStatus.java new file mode 100644 index 0000000..1fc178d --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/enums/MissionStatus.java @@ -0,0 +1,5 @@ +package umc.spring.domain.enums; + +public enum MissionStatus { + INPROGRESS, COMPLETE +} diff --git a/spring/src/main/java/umc/spring/domain/enums/SocialType.java b/spring/src/main/java/umc/spring/domain/enums/SocialType.java new file mode 100644 index 0000000..085cb48 --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/enums/SocialType.java @@ -0,0 +1,5 @@ +package umc.spring.domain.enums; + +public enum SocialType { + KAKAO, GOOGLE, NAVER, APPLE +}