From f8d6982e18379623af98687ecf96c195c67fef4b Mon Sep 17 00:00:00 2001 From: Lee Hangil Date: Mon, 15 Jul 2024 21:56:36 +0900 Subject: [PATCH] =?UTF-8?q?[Feature]=20-=20=EC=97=AC=ED=96=89=EA=B8=B0=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20Entity=20=EC=83=9D=EC=84=B1=20#17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../touroot/place/domain/Place.java | 28 +++++++++++++ .../touroot/travelogue/domain/Travelogue.java | 29 +++++++++++++ .../travelogueday/domain/TravelogueDay.java | 34 +++++++++++++++ .../domain/TraveloguePhoto.java | 31 ++++++++++++++ .../domain/TraveloguePlace.java | 41 +++++++++++++++++++ 5 files changed, 163 insertions(+) create mode 100644 backend/src/main/java/woowacourse/touroot/place/domain/Place.java create mode 100644 backend/src/main/java/woowacourse/touroot/travelogue/domain/Travelogue.java create mode 100644 backend/src/main/java/woowacourse/touroot/travelogueday/domain/TravelogueDay.java create mode 100644 backend/src/main/java/woowacourse/touroot/traveloguephoto/domain/TraveloguePhoto.java create mode 100644 backend/src/main/java/woowacourse/touroot/travelogueplace/domain/TraveloguePlace.java diff --git a/backend/src/main/java/woowacourse/touroot/place/domain/Place.java b/backend/src/main/java/woowacourse/touroot/place/domain/Place.java new file mode 100644 index 00000000..25cb57f9 --- /dev/null +++ b/backend/src/main/java/woowacourse/touroot/place/domain/Place.java @@ -0,0 +1,28 @@ +package woowacourse.touroot.place.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import lombok.Getter; + +@Getter +@Entity +public class Place { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private String name; + + @Column(nullable = false) + private Double latitude; + + @Column(nullable = false) + private Double longitude; + + private String googlePlaceId; +} diff --git a/backend/src/main/java/woowacourse/touroot/travelogue/domain/Travelogue.java b/backend/src/main/java/woowacourse/touroot/travelogue/domain/Travelogue.java new file mode 100644 index 00000000..1899e848 --- /dev/null +++ b/backend/src/main/java/woowacourse/touroot/travelogue/domain/Travelogue.java @@ -0,0 +1,29 @@ +package woowacourse.touroot.travelogue.domain; + +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 java.util.List; +import lombok.Getter; +import woowacourse.touroot.travelogueday.domain.TravelogueDay; + +@Getter +@Entity +public class Travelogue { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false, length = 20) + private String title; + + @Column(nullable = false) + private String thumbnail; + + @OneToMany(mappedBy = "travelogue") + private List days; +} diff --git a/backend/src/main/java/woowacourse/touroot/travelogueday/domain/TravelogueDay.java b/backend/src/main/java/woowacourse/touroot/travelogueday/domain/TravelogueDay.java new file mode 100644 index 00000000..2123b5b9 --- /dev/null +++ b/backend/src/main/java/woowacourse/touroot/travelogueday/domain/TravelogueDay.java @@ -0,0 +1,34 @@ +package woowacourse.touroot.travelogueday.domain; + +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.OneToMany; +import java.util.List; +import lombok.Getter; +import woowacourse.touroot.travelogue.domain.Travelogue; +import woowacourse.touroot.travelogueplace.domain.TraveloguePlace; + +@Getter +@Entity +public class TravelogueDay { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private Integer order; + + @JoinColumn(nullable = false) + @ManyToOne(fetch = FetchType.LAZY) + private Travelogue travelogue; + + @OneToMany(mappedBy = "travelogueDay") + private List places; +} diff --git a/backend/src/main/java/woowacourse/touroot/traveloguephoto/domain/TraveloguePhoto.java b/backend/src/main/java/woowacourse/touroot/traveloguephoto/domain/TraveloguePhoto.java new file mode 100644 index 00000000..9bb79e4e --- /dev/null +++ b/backend/src/main/java/woowacourse/touroot/traveloguephoto/domain/TraveloguePhoto.java @@ -0,0 +1,31 @@ +package woowacourse.touroot.traveloguephoto.domain; + +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 lombok.Getter; +import woowacourse.touroot.travelogueplace.domain.TraveloguePlace; + +@Getter +@Entity +public class TraveloguePhoto { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private String key; + + @Column(nullable = false) + private Integer order; + + @JoinColumn(nullable = false) + @ManyToOne(fetch = FetchType.LAZY) + private TraveloguePlace place; +} diff --git a/backend/src/main/java/woowacourse/touroot/travelogueplace/domain/TraveloguePlace.java b/backend/src/main/java/woowacourse/touroot/travelogueplace/domain/TraveloguePlace.java new file mode 100644 index 00000000..4b932fa2 --- /dev/null +++ b/backend/src/main/java/woowacourse/touroot/travelogueplace/domain/TraveloguePlace.java @@ -0,0 +1,41 @@ +package woowacourse.touroot.travelogueplace.domain; + +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.OneToMany; +import java.util.List; +import lombok.Getter; +import woowacourse.touroot.place.domain.Place; +import woowacourse.touroot.travelogueday.domain.TravelogueDay; +import woowacourse.touroot.traveloguephoto.domain.TraveloguePhoto; + +@Getter +@Entity +public class TraveloguePlace { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private Integer order; + + private String description; + + @JoinColumn(nullable = false) + @ManyToOne(fetch = FetchType.LAZY) + private Place place; + + @JoinColumn(nullable = false) + @ManyToOne(fetch = FetchType.LAZY) + private TravelogueDay day; + + @OneToMany(mappedBy = "traveloguePlace") + private List photos; +}