Skip to content

Commit e817c45

Browse files
committed
update: Updated basic domains
- added more fields and methods to domain classes - fixed import statements (from * to individual import)
1 parent 64efe13 commit e817c45

File tree

4 files changed

+76
-11
lines changed

4 files changed

+76
-11
lines changed

src/main/java/com/f_lab/la_planete/domain/Food.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
package com.f_lab.la_planete.domain;
22

33
import com.f_lab.la_planete.domain.base.BaseEntity;
4-
import jakarta.persistence.*;
4+
5+
6+
import jakarta.persistence.Entity;
7+
import jakarta.persistence.GeneratedValue;
8+
import jakarta.persistence.Id;
9+
import jakarta.persistence.JoinColumn;
10+
import jakarta.persistence.ManyToOne;
11+
import jakarta.persistence.Table;
512
import lombok.Getter;
613
import lombok.NoArgsConstructor;
714
import lombok.Setter;
@@ -26,23 +33,27 @@ public class Food extends BaseEntity {
2633

2734
private BigDecimal price;
2835

29-
private int quantity;
36+
private int totalQuantity;
3037

3138
@ManyToOne(fetch = LAZY)
3239
@JoinColumn(name = "store_id")
3340
private Store store;
3441

35-
public static Food of(BigDecimal price, int quantity) {
42+
public static Food of(BigDecimal price, int totalQuantity) {
3643
Food food = new Food();
3744
food.setPrice(price);
38-
food.setQuantity(quantity);
45+
food.setTotalQuantity(totalQuantity);
3946
return food;
4047
}
4148

49+
public BigDecimal calculateCost(int quantity) {
50+
return BigDecimal.valueOf((long) price.intValue() * quantity);
51+
}
52+
4253
public void minusQuantity(int deductions) {
43-
if (quantity - deductions < 0)
54+
if (totalQuantity - deductions < 0)
4455
throw new IllegalStateException("수량이 부족합니다. 따라서 구매가 진행될 수 없습니다.");
4556

46-
quantity -= deductions;
57+
totalQuantity -= deductions;
4758
}
4859
}
Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
package com.f_lab.la_planete.domain;
22

33
import com.f_lab.la_planete.domain.base.BaseEntity;
4-
import jakarta.persistence.*;
4+
5+
import jakarta.persistence.Entity;
6+
import jakarta.persistence.EnumType;
7+
import jakarta.persistence.Enumerated;
8+
import jakarta.persistence.GeneratedValue;
9+
import jakarta.persistence.Id;
10+
import jakarta.persistence.JoinColumn;
11+
import jakarta.persistence.ManyToOne;
12+
import jakarta.persistence.OneToOne;
13+
import jakarta.persistence.Table;
14+
15+
import lombok.AllArgsConstructor;
16+
import lombok.Builder;
517
import lombok.Getter;
618
import lombok.NoArgsConstructor;
719

20+
import java.math.BigDecimal;
21+
822
import static jakarta.persistence.FetchType.LAZY;
923
import static jakarta.persistence.GenerationType.IDENTITY;
1024
import static lombok.AccessLevel.PROTECTED;
1125

1226
@Entity
1327
@Getter
28+
@Builder
29+
@AllArgsConstructor
1430
@NoArgsConstructor(access = PROTECTED)
1531
@Table(name = "orders")
1632
public class Order extends BaseEntity {
@@ -19,10 +35,28 @@ public class Order extends BaseEntity {
1935
@GeneratedValue(strategy = IDENTITY)
2036
private Long id;
2137

38+
@ManyToOne
39+
@JoinColumn(name = "food_id")
40+
private Food food;
41+
42+
private BigDecimal totalCost;
43+
44+
private int quantity;
45+
46+
// 화폐 추가
47+
2248
@Enumerated(EnumType.STRING)
2349
private OrderStatus status;
2450

2551
@OneToOne(fetch = LAZY)
2652
@JoinColumn(name = "payment_id")
2753
private Payment payment;
54+
55+
public void updateTotalCost(BigDecimal totalCost) {
56+
this.totalCost = totalCost;
57+
}
58+
59+
public BigDecimal calculateTotalCost() {
60+
return food.calculateCost(quantity);
61+
}
2862
}
Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,46 @@
11
package com.f_lab.la_planete.domain;
22

33
import com.f_lab.la_planete.domain.base.BaseEntity;
4-
import jakarta.persistence.*;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.EnumType;
6+
import jakarta.persistence.Enumerated;
7+
import jakarta.persistence.GeneratedValue;
8+
import jakarta.persistence.Id;
9+
import jakarta.persistence.OneToOne;
10+
import jakarta.persistence.Table;
511
import lombok.Getter;
612
import lombok.NoArgsConstructor;
13+
import lombok.Setter;
714

815
import java.math.BigDecimal;
916

1017
import static jakarta.persistence.FetchType.LAZY;
1118
import static jakarta.persistence.GenerationType.IDENTITY;
19+
import static lombok.AccessLevel.PRIVATE;
1220
import static lombok.AccessLevel.PROTECTED;
1321

1422
@Entity
15-
@Getter
23+
@Getter @Setter(PRIVATE)
1624
@NoArgsConstructor(access = PROTECTED)
1725
@Table(name = "payments")
1826
public class Payment extends BaseEntity {
1927

2028
@Id @GeneratedValue(strategy = IDENTITY)
2129
private Long id;
2230

23-
private BigDecimal amount;
31+
private BigDecimal totalCost;
2432

2533
@Enumerated(EnumType.STRING)
2634
private PaymentStatus status;
2735

2836
@OneToOne(mappedBy = "payment", fetch = LAZY)
2937
private Order order;
38+
39+
public static Payment of(BigDecimal totalCost, Order order) {
40+
Payment payment = new Payment();
41+
payment.setTotalCost(totalCost);
42+
payment.setOrder(order);
43+
payment.setStatus(PaymentStatus.READY);
44+
return payment;
45+
}
3046
}

src/main/java/com/f_lab/la_planete/domain/Store.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package com.f_lab.la_planete.domain;
22

33
import com.f_lab.la_planete.domain.base.BaseTimeEntity;
4-
import jakarta.persistence.*;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.GeneratedValue;
6+
import jakarta.persistence.Id;
7+
import jakarta.persistence.OneToMany;
8+
import jakarta.persistence.Table;
59
import lombok.Getter;
610
import lombok.NoArgsConstructor;
711

0 commit comments

Comments
 (0)