Merge pull request #4 from Development-team-1/order-service-jpa-design
Order service jpa design
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package com.justpickup.orderservice.domain.order.entity;
|
||||
|
||||
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
|
||||
import com.justpickup.orderservice.domain.transaction.entity.Transaction;
|
||||
import com.justpickup.orderservice.global.entity.BaseEntity;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table(name = "orders")
|
||||
@Getter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
public class Order extends BaseEntity {
|
||||
|
||||
@Id @GeneratedValue
|
||||
@Column(name = "order_id")
|
||||
private Long id;
|
||||
|
||||
private Long userId;
|
||||
|
||||
private Long userCouponId;
|
||||
|
||||
private Long orderPrice;
|
||||
|
||||
private LocalDateTime orderTime;
|
||||
|
||||
private Long usedPoint;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
private OrderStatus orderStatus;
|
||||
|
||||
@OneToOne(mappedBy = "order")
|
||||
private Transaction transaction;
|
||||
|
||||
@OneToMany(mappedBy = "order")
|
||||
private List<OrderItem> orderItems;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.justpickup.orderservice.domain.order.entity;
|
||||
|
||||
public enum OrderStatus {
|
||||
PENDING,
|
||||
PLACED,
|
||||
CANCELED,
|
||||
FAILED
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.justpickup.orderservice.domain.orderItem.entity;
|
||||
|
||||
import com.justpickup.orderservice.domain.order.entity.Order;
|
||||
import com.justpickup.orderservice.domain.orderItemOption.entity.OrderItemOption;
|
||||
import com.justpickup.orderservice.global.entity.BaseEntity;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table(name = "order_item")
|
||||
@Getter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
public class OrderItem extends BaseEntity {
|
||||
|
||||
@Id @GeneratedValue
|
||||
@Column(name = "order_item_id")
|
||||
private Long id;
|
||||
|
||||
private Long itemId;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "order_id")
|
||||
private Order order;
|
||||
|
||||
@OneToMany(mappedBy = "orderItem")
|
||||
private List<OrderItemOption> orderItemOptions;
|
||||
|
||||
private Long price;
|
||||
|
||||
private Long count;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.justpickup.orderservice.domain.orderItemOption.entity;
|
||||
|
||||
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
|
||||
import com.justpickup.orderservice.global.entity.BaseEntity;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
@Table(name = "order_item_option")
|
||||
@Getter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
public class OrderItemOption extends BaseEntity {
|
||||
|
||||
@Id @GeneratedValue
|
||||
@Column(name = "order_item_option_id")
|
||||
private Long id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "order_item_id")
|
||||
private OrderItem orderItem;
|
||||
|
||||
private Long itemOptionId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.justpickup.orderservice.domain.transaction.entity;
|
||||
|
||||
import com.justpickup.orderservice.domain.order.entity.Order;
|
||||
import com.justpickup.orderservice.global.entity.BaseEntity;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
@Table(name = "transaction")
|
||||
@Getter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
public class Transaction extends BaseEntity {
|
||||
|
||||
@Id @GeneratedValue
|
||||
@Column(name = "transaction_id")
|
||||
private Long id;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "order_id")
|
||||
private Order order;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.justpickup.orderservice.global.entity;
|
||||
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.MappedSuperclass;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@MappedSuperclass
|
||||
public abstract class BaseEntity {
|
||||
|
||||
private LocalDateTime createdAt;
|
||||
private Long createdBy;
|
||||
private LocalDateTime lastModifiedAt;
|
||||
private Long lastModifiedBy;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user