-
Notifications
You must be signed in to change notification settings - Fork 199
/
Copy pathOrder.java
128 lines (101 loc) · 3.15 KB
/
Order.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package kitchenpos.legacy.domain;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.ForeignKey;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import kitchenpos.order.delivery_order.domain.OrderTable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
@Table(name = "orders")
@Entity
public class Order {
@Column(name = "id", columnDefinition = "binary(16)")
@Id
private UUID id;
@Column(name = "type", nullable = false, columnDefinition = "varchar(255)")
@Enumerated(EnumType.STRING)
private OrderType type;
@Column(name = "status", nullable = false, columnDefinition = "varchar(255)")
@Enumerated(EnumType.STRING)
private OrderStatus status;
@Column(name = "order_date_time", nullable = false)
private LocalDateTime orderDateTime;
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(
name = "order_id",
nullable = false,
columnDefinition = "binary(16)",
foreignKey = @ForeignKey(name = "fk_order_line_item_to_orders")
)
private List<OrderLineItem> orderLineItems;
@Column(name = "delivery_address")
private String deliveryAddress;
@ManyToOne
@JoinColumn(
name = "order_table_id",
columnDefinition = "binary(16)",
foreignKey = @ForeignKey(name = "fk_orders_to_order_table")
)
private OrderTable orderTable;
@Transient
private UUID orderTableId;
public Order() {
}
public UUID getId() {
return id;
}
public void setId(final UUID id) {
this.id = id;
}
public OrderType getType() {
return type;
}
public void setType(final OrderType type) {
this.type = type;
}
public OrderStatus getStatus() {
return status;
}
public void setStatus(final OrderStatus status) {
this.status = status;
}
public LocalDateTime getOrderDateTime() {
return orderDateTime;
}
public void setOrderDateTime(final LocalDateTime orderDateTime) {
this.orderDateTime = orderDateTime;
}
public List<OrderLineItem> getOrderLineItems() {
return orderLineItems;
}
public void setOrderLineItems(final List<OrderLineItem> orderLineItems) {
this.orderLineItems = orderLineItems;
}
public String getDeliveryAddress() {
return deliveryAddress;
}
public void setDeliveryAddress(final String deliveryAddress) {
this.deliveryAddress = deliveryAddress;
}
public OrderTable getOrderTable() {
return orderTable;
}
public void setOrderTable(final OrderTable orderTable) {
this.orderTable = orderTable;
}
public UUID getOrderTableId() {
return orderTableId;
}
public void setOrderTableId(final UUID orderTableId) {
this.orderTableId = orderTableId;
}
}