diff --git a/src/main/java/com/vegamarket/orderservice/dtos/OrderItems.java b/src/main/java/com/vegamarket/orderservice/dtos/OrderItems.java index 8db3b40..50d2689 100644 --- a/src/main/java/com/vegamarket/orderservice/dtos/OrderItems.java +++ b/src/main/java/com/vegamarket/orderservice/dtos/OrderItems.java @@ -1,9 +1,13 @@ package com.vegamarket.orderservice.dtos; +import com.vegamarket.orderservice.model.Orders; +import jakarta.persistence.*; import lombok.*; import java.math.BigDecimal; +@Entity +@Table(name = "order_items") @Getter @Setter @AllArgsConstructor @@ -11,6 +15,15 @@ import java.math.BigDecimal; @Builder public class OrderItems { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long orderItemId; + private Long productId; + private Long quantity; + + @ManyToOne(fetch = FetchType.LAZY, optional = false) + @JoinColumn(name = "order_id", nullable = false) + private Orders order; private String name; private BigDecimal price; } diff --git a/src/main/java/com/vegamarket/orderservice/model/Orders.java b/src/main/java/com/vegamarket/orderservice/model/Orders.java index 414a55b..0b07562 100644 --- a/src/main/java/com/vegamarket/orderservice/model/Orders.java +++ b/src/main/java/com/vegamarket/orderservice/model/Orders.java @@ -34,8 +34,11 @@ public class Orders { private BigDecimal totalAmount; private String traceId; - @Column(columnDefinition = "jsonb", nullable = false) - @JdbcTypeCode(SqlTypes.JSON) + @OneToMany( + mappedBy = "order", + cascade = CascadeType.ALL, + orphanRemoval = true + ) private List items; @CreationTimestamp diff --git a/src/main/resources/db/migration/V2__CREATE-ORDERS-ITEMS-TABLE.sql b/src/main/resources/db/migration/V2__CREATE-ORDERS-ITEMS-TABLE.sql new file mode 100644 index 0000000..5153366 --- /dev/null +++ b/src/main/resources/db/migration/V2__CREATE-ORDERS-ITEMS-TABLE.sql @@ -0,0 +1,15 @@ +alter table orders +drop column items; + +create table order_items ( + order_item_id bigint generated always as identity primary key, + productId bigint not null, + quantity int not null, + order_id bigint not null, + name varchar(255) not null, + price numeric(19,2) not null, + constraint fk_order_item_order + foreign key (order_id) + references orders(order_id) + on delete cascade +); \ No newline at end of file