From ed5d6268eed11c14f2452a4afd97cb5d1581a1cb Mon Sep 17 00:00:00 2001 From: Hanna Lee <8annahxxl@gmail.com> Date: Fri, 22 Dec 2023 14:09:48 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=98=88=EB=A7=A4]=20=EC=98=88=EB=A7=A4,=20?= =?UTF-8?q?=ED=8B=B0=EC=BC=93=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=A0=95?= =?UTF-8?q?=EC=9D=98=20(#6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: order, ticket 엔티티 정의 * feat: ticket 패키지 수정 * fix: order orphanRemoval 옵션 제거 * style: 포매터 적용 --- .../pgms/coredomain/domain/event/Ticket.java | 25 +++++++++ .../pgms/coredomain/domain/order/Order.java | 56 +++++++++++++++++++ .../coredomain/domain/order/OrderStatus.java | 14 +++++ .../coredomain/domain/order/ReceiptType.java | 12 ++++ 4 files changed, 107 insertions(+) create mode 100644 core/core-domain/src/main/java/com/pgms/coredomain/domain/event/Ticket.java create mode 100644 core/core-domain/src/main/java/com/pgms/coredomain/domain/order/Order.java create mode 100644 core/core-domain/src/main/java/com/pgms/coredomain/domain/order/OrderStatus.java create mode 100644 core/core-domain/src/main/java/com/pgms/coredomain/domain/order/ReceiptType.java diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/Ticket.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/Ticket.java new file mode 100644 index 00000000..d0532982 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/event/Ticket.java @@ -0,0 +1,25 @@ +package com.pgms.coredomain.domain.event; + +import com.pgms.coredomain.domain.common.BaseEntity; +import com.pgms.coredomain.domain.order.Order; + +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "ticket") +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Ticket extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "order_id", nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private Order order; + + //TODO: 공연 좌석 매핑 +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/Order.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/Order.java new file mode 100644 index 00000000..6bb08d96 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/Order.java @@ -0,0 +1,56 @@ +package com.pgms.coredomain.domain.order; + +import com.pgms.coredomain.domain.event.Ticket; +import com.pgms.coredomain.domain.common.BaseEntity; + +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "order") +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Order extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name = "order_name", nullable = false) + private String orderName; + + @Enumerated(EnumType.STRING) + @Column(name = "status", nullable = false) + private OrderStatus status; + + @Enumerated(EnumType.STRING) + @Column(name = "receipt_type", nullable = false) + private ReceiptType receiptType; + + @Column(name = "buyer_name", nullable = false) + private String buyerName; + + @Column(name = "buyer_phone_number", nullable = false) + private String buyerPhoneNumber; + + @Column(name = "street_address") + private String streetAddress; + + @Column(name = "detail_address") + private String detailAddress; + + @Column(name = "zip_code") + private String zipCode; + + @Column(name = "amount", nullable = false) + private int amount; + + @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) + private List tickets = new ArrayList<>(); + + //TODO: 회원 매핑 +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/OrderStatus.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/OrderStatus.java new file mode 100644 index 00000000..dd8efe83 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/OrderStatus.java @@ -0,0 +1,14 @@ +package com.pgms.coredomain.domain.order; + +public enum OrderStatus { + + WAITING_FOR_DEPOSIT("입금대기"), + PAYMENT_COMPLETED("결제완료"), + CANCELLED("취소"); + + private final String description; + + OrderStatus(String description) { + this.description = description; + } +} diff --git a/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/ReceiptType.java b/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/ReceiptType.java new file mode 100644 index 00000000..0c78b8c0 --- /dev/null +++ b/core/core-domain/src/main/java/com/pgms/coredomain/domain/order/ReceiptType.java @@ -0,0 +1,12 @@ +package com.pgms.coredomain.domain.order; + +public enum ReceiptType { + PICK_UP("현장수령"), + DELIVERY("배송"); + + private final String description; + + ReceiptType(String description) { + this.description = description; + } +}