Skip to content

Commit

Permalink
[공연] Event 엔티티 및 연관관계 추가 (#9)
Browse files Browse the repository at this point in the history
* feat : add Event Entity

* feat : #4 Event 엔티티 컬럼까지 추가

* feat : #5 Event entity 정의

* fix : #4 baseentity 상속 추가

* fix : 패키지 수정

* feat : #4 add event entity column

* fix : #5 Event 관련 Entity Id 컬렴명 수정

* fix : #5 Enum 명칭 수정 및 좌석 등급 -> 좌석 구역으로 변경

* feat : #4,5 Event 엔티티 연관관계 추가

---------

Co-authored-by: park0jae <[email protected]>
Co-authored-by: Kim Dae Hwi <[email protected]>
Co-authored-by: zerozae <[email protected]>
  • Loading branch information
4 people authored Dec 22, 2023
1 parent ed5d626 commit 0791994
Show file tree
Hide file tree
Showing 11 changed files with 286 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.pgms.coredomain.domain.event;

public enum EventSeatStatus {
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.pgms.coredomain.domain.event;

public enum GenreType {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.pgms.coredomain.domain.event;

public enum SeatAreaType {
}

0 comments on commit 0791994

Please sign in to comment.