diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/Event.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/Event.java new file mode 100644 index 00000000..17cec439 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/Event.java @@ -0,0 +1,54 @@ +package com.pgms.coredomain.domain.event; + +import java.time.LocalDateTime; + +import com.pgms.coredomain.domain.common.BaseEntity; + +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Entity +@Table(name = "event") +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Event extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "title") + private String title; + + @Lob + @Column(name = "description") + private String description; + + @Column(name = "running_time") + private int runningTime; + + @Column(name = "start_date") + private LocalDateTime startDate; + + @Column(name = "endDate") + private LocalDateTime endDate; + + @Column(name = "rating") + private String rating; + + @Column(name = "genre") + @Enumerated(value = EnumType.STRING) + private GenreType genreType; + + @Lob + @Column(name = "thumbnail") + private String thumbnail; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_hall_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private EventHall eventHall; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventHall.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventHall.java new file mode 100644 index 00000000..22a9d366 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventHall.java @@ -0,0 +1,27 @@ +package com.pgms.coredomain.domain.event; + +import com.pgms.coredomain.domain.common.BaseEntity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table(name = "event_hall") +public class EventHall extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "event_name") + private String name; + + @Column(name = "address") + private String address; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventHallSeat.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventHallSeat.java new file mode 100644 index 00000000..d3c41ac9 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventHallSeat.java @@ -0,0 +1,21 @@ +package com.pgms.coredomain.domain.event; + +import com.pgms.coredomain.domain.common.BaseEntity; +import jakarta.persistence.*; + +@Entity +@Table(name = "event_hall_seat") +public class EventHallSeat extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "name") + private String name; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_hall_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private EventHall eventHall; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventImage.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventImage.java new file mode 100644 index 00000000..778d9e63 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventImage.java @@ -0,0 +1,29 @@ +package com.pgms.coredomain.domain.event; + +import com.pgms.coredomain.domain.common.BaseEntity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table(name = "event_image") +public class EventImage extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Lob + @Column(name = "url") + private String url; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private Event event; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventReview.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventReview.java new file mode 100644 index 00000000..5a590b11 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventReview.java @@ -0,0 +1,29 @@ +package com.pgms.coredomain.domain.event; + +import com.pgms.coredomain.domain.common.BaseEntity; +import jakarta.persistence.*; +import lombok.*; + +@Entity +@Getter +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@Table(name = "event_review") +public class EventReview extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "score") + private Integer score; + + @Lob + @Column(name = "content") + private String content; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private Event event; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeat.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeat.java new file mode 100644 index 00000000..76d5f224 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeat.java @@ -0,0 +1,26 @@ +package com.pgms.coredomain.domain.event; + +import com.pgms.coredomain.domain.common.BaseEntity; +import jakarta.persistence.*; + +@Entity +@Table(name = "event_seat") +public class EventSeat extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Enumerated(value = EnumType.STRING) + @Column(name = "status") + private EventSeatStatus status; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_time_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private EventTime eventTime; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_seat_area_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private EventSeatArea eventSeatArea; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeatArea.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeatArea.java new file mode 100644 index 00000000..7ae47cc4 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeatArea.java @@ -0,0 +1,43 @@ +package com.pgms.coredomain.domain.event; + +import com.pgms.coredomain.domain.common.BaseEntity; + +import jakarta.persistence.Column; +import jakarta.persistence.ConstraintMode; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.ForeignKey; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Entity +@Table(name = "event_seat_area") +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class EventSeatArea extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "area") + @Enumerated(value = EnumType.STRING) + private SeatAreaType seatAreaType; + + @Column(name = "price") + private int price; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private Event event; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeatStatus.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeatStatus.java new file mode 100644 index 00000000..78c1807a --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventSeatStatus.java @@ -0,0 +1,4 @@ +package com.pgms.coredomain.domain.event; + +public enum EventSeatStatus { +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventTime.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventTime.java new file mode 100644 index 00000000..d64aab14 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/EventTime.java @@ -0,0 +1,45 @@ +package com.pgms.coredomain.domain.event; + +import java.time.LocalDateTime; + +import com.pgms.coredomain.domain.common.BaseEntity; + +import jakarta.persistence.Column; +import jakarta.persistence.ConstraintMode; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.ForeignKey; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Table(name = "event_time") +@Entity +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class EventTime extends BaseEntity { + + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "round") + private int round; + + @Column(name = "start_time") + private LocalDateTime startTime; + + @Column(name = "end_time") + private LocalDateTime endTime; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "event_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private Event event; +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/GenreType.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/GenreType.java new file mode 100644 index 00000000..072285ac --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/GenreType.java @@ -0,0 +1,4 @@ +package com.pgms.coredomain.domain.event; + +public enum GenreType { +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/SeatAreaType.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/SeatAreaType.java new file mode 100644 index 00000000..a4f0a9aa --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/SeatAreaType.java @@ -0,0 +1,4 @@ +package com.pgms.coredomain.domain.event; + +public enum SeatAreaType { +}