From c90a339f07da24c54226c22f76cca443a2b33b40 Mon Sep 17 00:00:00 2001 From: msk226 Date: Sun, 23 Feb 2025 15:02:20 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[FEATURE]=20BaseEntity=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erica/capstone/CapstoneApplication.java | 2 ++ .../capstone/domain/base/BaseEntity.java | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/main/java/hyu/erica/capstone/domain/base/BaseEntity.java diff --git a/src/main/java/hyu/erica/capstone/CapstoneApplication.java b/src/main/java/hyu/erica/capstone/CapstoneApplication.java index 39f3dbd..11508a5 100644 --- a/src/main/java/hyu/erica/capstone/CapstoneApplication.java +++ b/src/main/java/hyu/erica/capstone/CapstoneApplication.java @@ -2,8 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @SpringBootApplication +@EnableJpaAuditing public class CapstoneApplication { public static void main(String[] args) { diff --git a/src/main/java/hyu/erica/capstone/domain/base/BaseEntity.java b/src/main/java/hyu/erica/capstone/domain/base/BaseEntity.java new file mode 100644 index 0000000..758342d --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/base/BaseEntity.java @@ -0,0 +1,21 @@ +package hyu.erica.capstone.domain.base; + +import jakarta.persistence.EntityListeners; +import jakarta.persistence.MappedSuperclass; +import java.time.LocalDateTime; +import lombok.Getter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +@Getter +public abstract class BaseEntity { + + @CreatedDate + private LocalDateTime createdAt; + + @LastModifiedDate + private LocalDateTime updatedAt; +} \ No newline at end of file From 6b5c92384bd2dc8c54c6165a73fddf1d9dd4ae1d Mon Sep 17 00:00:00 2001 From: msk226 Date: Sun, 23 Feb 2025 15:05:54 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[FEATURE]=20=ED=9A=8C=EC=9B=90=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/hyu/erica/capstone/domain/User.java | 49 +++++++++++++++++++ .../erica/capstone/domain/enums/Gender.java | 5 ++ .../domain/enums/ThirdPartyLogin.java | 5 ++ 3 files changed, 59 insertions(+) create mode 100644 src/main/java/hyu/erica/capstone/domain/User.java create mode 100644 src/main/java/hyu/erica/capstone/domain/enums/Gender.java create mode 100644 src/main/java/hyu/erica/capstone/domain/enums/ThirdPartyLogin.java diff --git a/src/main/java/hyu/erica/capstone/domain/User.java b/src/main/java/hyu/erica/capstone/domain/User.java new file mode 100644 index 0000000..7798b28 --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/User.java @@ -0,0 +1,49 @@ +package hyu.erica.capstone.domain; + + +import hyu.erica.capstone.domain.base.BaseEntity; +import hyu.erica.capstone.domain.enums.Gender; +import hyu.erica.capstone.domain.enums.ThirdPartyLogin; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import java.time.LocalDate; +import java.util.List; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +@Entity +@Getter +@Builder +@DynamicUpdate +@DynamicInsert +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class User extends BaseEntity { + + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String name; + + private String nickname; + + private String email; + + private String password; + + private LocalDate birthday; + + private Gender gender; + + private String profileImage; + + private ThirdPartyLogin thirdPartyLogin; + +} diff --git a/src/main/java/hyu/erica/capstone/domain/enums/Gender.java b/src/main/java/hyu/erica/capstone/domain/enums/Gender.java new file mode 100644 index 0000000..9a0c86c --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/enums/Gender.java @@ -0,0 +1,5 @@ +package hyu.erica.capstone.domain.enums; + +public enum Gender { + MALE, FEMALE +} diff --git a/src/main/java/hyu/erica/capstone/domain/enums/ThirdPartyLogin.java b/src/main/java/hyu/erica/capstone/domain/enums/ThirdPartyLogin.java new file mode 100644 index 0000000..61bc695 --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/enums/ThirdPartyLogin.java @@ -0,0 +1,5 @@ +package hyu.erica.capstone.domain.enums; + +public enum ThirdPartyLogin { + GOOGLE, NAVER, KAKAO +} From 277a5740cc40ea43671bef910300b2771b566481 Mon Sep 17 00:00:00 2001 From: msk226 Date: Sun, 23 Feb 2025 15:06:56 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[FEATURE]=20=EC=97=AC=ED=96=89=EC=A7=80,=20?= =?UTF-8?q?=EC=8B=9D=EB=8B=B9=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/hyu/erica/capstone/domain/Attraction.java | 5 +++++ src/main/java/hyu/erica/capstone/domain/Restaurant.java | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 src/main/java/hyu/erica/capstone/domain/Attraction.java create mode 100644 src/main/java/hyu/erica/capstone/domain/Restaurant.java diff --git a/src/main/java/hyu/erica/capstone/domain/Attraction.java b/src/main/java/hyu/erica/capstone/domain/Attraction.java new file mode 100644 index 0000000..5a9b567 --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/Attraction.java @@ -0,0 +1,5 @@ +package hyu.erica.capstone.domain; + +public class Attraction { + // 추후 작성 예정 +} diff --git a/src/main/java/hyu/erica/capstone/domain/Restaurant.java b/src/main/java/hyu/erica/capstone/domain/Restaurant.java new file mode 100644 index 0000000..a5cfd5b --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/Restaurant.java @@ -0,0 +1,5 @@ +package hyu.erica.capstone.domain; + +public class Restaurant { + // 추후 작성 예정 +} From 09969f4b26cf2aa8e7ad26504c86b412c5a57754 Mon Sep 17 00:00:00 2001 From: msk226 Date: Sun, 23 Feb 2025 15:10:45 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[FEATURE]=20=EC=84=A0=ED=98=B8=20=EC=97=AC?= =?UTF-8?q?=ED=96=89=EC=A7=80,=20=EC=84=A0=ED=98=B8=20=EC=8B=9D=EB=8B=B9?= =?UTF-8?q?=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/mapping/PreferAttraction.java | 43 +++++++++++++++++++ .../domain/mapping/PreferRestaurant.java | 42 ++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 src/main/java/hyu/erica/capstone/domain/mapping/PreferAttraction.java create mode 100644 src/main/java/hyu/erica/capstone/domain/mapping/PreferRestaurant.java diff --git a/src/main/java/hyu/erica/capstone/domain/mapping/PreferAttraction.java b/src/main/java/hyu/erica/capstone/domain/mapping/PreferAttraction.java new file mode 100644 index 0000000..4e7b69e --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/mapping/PreferAttraction.java @@ -0,0 +1,43 @@ +package hyu.erica.capstone.domain.mapping; + +import static jakarta.persistence.GenerationType.*; + +import hyu.erica.capstone.domain.Attraction; +import hyu.erica.capstone.domain.User; +import hyu.erica.capstone.domain.base.BaseEntity; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +@Entity +@Getter +@Builder +@DynamicUpdate +@DynamicInsert +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class PreferAttraction extends BaseEntity { + + @Id @GeneratedValue(strategy = IDENTITY) + private Long id; + + //private Attraction attraction; + + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @JoinColumn(name = "user_id") + private User user; + + private boolean isPrefer; + +} diff --git a/src/main/java/hyu/erica/capstone/domain/mapping/PreferRestaurant.java b/src/main/java/hyu/erica/capstone/domain/mapping/PreferRestaurant.java new file mode 100644 index 0000000..48ba4c2 --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/mapping/PreferRestaurant.java @@ -0,0 +1,42 @@ +package hyu.erica.capstone.domain.mapping; + +import static jakarta.persistence.GenerationType.IDENTITY; + +import hyu.erica.capstone.domain.Restaurant; +import hyu.erica.capstone.domain.User; +import hyu.erica.capstone.domain.base.BaseEntity; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +@Entity +@Getter +@Builder +@DynamicUpdate +@DynamicInsert +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class PreferRestaurant extends BaseEntity { + + @Id @GeneratedValue(strategy = IDENTITY) + private Long id; + +// private Restaurant restaurant; + + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) + @JoinColumn(name = "user_id") + private User user; + + private boolean isPrefer; +} From 48806838775e26bcafd3213ead536c3f003c83fd Mon Sep 17 00:00:00 2001 From: msk226 Date: Sun, 23 Feb 2025 15:12:56 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[FEATURE]=20=EC=97=AC=ED=96=89=20=EA=B3=84?= =?UTF-8?q?=ED=9A=8D=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hyu/erica/capstone/domain/TravelPlan.java | 46 +++++++++++++++++++ .../hyu/erica/capstone/domain/enums/City.java | 5 ++ 2 files changed, 51 insertions(+) create mode 100644 src/main/java/hyu/erica/capstone/domain/TravelPlan.java create mode 100644 src/main/java/hyu/erica/capstone/domain/enums/City.java diff --git a/src/main/java/hyu/erica/capstone/domain/TravelPlan.java b/src/main/java/hyu/erica/capstone/domain/TravelPlan.java new file mode 100644 index 0000000..9688d4d --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/TravelPlan.java @@ -0,0 +1,46 @@ +package hyu.erica.capstone.domain; + + +import static jakarta.persistence.GenerationType.IDENTITY; + +import hyu.erica.capstone.domain.enums.City; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import java.time.LocalDateTime; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +@Entity +@Getter +@Builder +@DynamicUpdate +@DynamicInsert +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class TravelPlan { + + @Id @GeneratedValue(strategy = IDENTITY) + private Long id; + + private City city; + + private LocalDateTime startDate; + + private LocalDateTime endDate; + + private String preferActivity; + + private String requirement; + + @ManyToOne + @JoinColumn(name = "user_id") + private User user; +} diff --git a/src/main/java/hyu/erica/capstone/domain/enums/City.java b/src/main/java/hyu/erica/capstone/domain/enums/City.java new file mode 100644 index 0000000..bf21044 --- /dev/null +++ b/src/main/java/hyu/erica/capstone/domain/enums/City.java @@ -0,0 +1,5 @@ +package hyu.erica.capstone.domain.enums; + +public enum City { + BUSAN, DAEGU, INCHEON, JEJU, SEOUL +}