From 67403a84144087014236d3207acd3a20dbe71ca6 Mon Sep 17 00:00:00 2001 From: andwati Date: Fri, 12 Jun 2026 16:21:39 +0300 Subject: [PATCH] created request and response dto --- .../dto/request/CreateOrderItemRequest.java | 15 ++++++++++++++ .../dto/request/CreateOrderRequest.java | 18 +++++++++++++++++ .../dto/response/CancelOrderResponse.java | 15 ++++++++++++++ .../orders/dto/response/ErrorResponse.java | 12 +++++++++++ .../dto/response/FareCalculationResponse.java | 16 +++++++++++++++ .../dto/response/InventoryItemResponse.java | 19 ++++++++++++++++++ .../response/LowStockInventoryResponse.java | 9 +++++++++ .../dto/response/OrderItemResponse.java | 13 ++++++++++++ .../orders/dto/response/OrderResponse.java | 20 +++++++++++++++++++ .../dto/response/OrderSummaryResponse.java | 19 ++++++++++++++++++ .../orders/dto/response/PageResponse.java | 12 +++++++++++ 11 files changed, 168 insertions(+) create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderItemRequest.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderRequest.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/CancelOrderResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/ErrorResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/FareCalculationResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/InventoryItemResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/LowStockInventoryResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/OrderItemResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/OrderResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/OrderSummaryResponse.java create mode 100644 orders-backend/src/main/java/com/andwati/orders/dto/response/PageResponse.java diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderItemRequest.java b/orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderItemRequest.java new file mode 100644 index 0000000..b0a87fe --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderItemRequest.java @@ -0,0 +1,15 @@ +package com.andwati.orders.dto.request; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; + +import java.util.UUID; + +public record CreateOrderItemRequest( + @NotNull(message = "productId is required") + UUID productId, + + @Min(value = 1, message = "quantity must be at least 1") + int quantity +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderRequest.java b/orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderRequest.java new file mode 100644 index 0000000..fa98095 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/request/CreateOrderRequest.java @@ -0,0 +1,18 @@ +package com.andwati.orders.dto.request; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; + +import java.util.List; + +public record CreateOrderRequest( + @NotBlank(message = "customerName is required") + @Size(min = 2, max = 120, message = "customerName must be between 2 and 120 characters") + String customerName, + + @Valid + @Size(min = 1, message = "items must contain at least one item") + List items +) { +} diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/CancelOrderResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/CancelOrderResponse.java new file mode 100644 index 0000000..4b5809c --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/CancelOrderResponse.java @@ -0,0 +1,15 @@ +package com.andwati.orders.dto.response; + + +import com.andwati.orders.model.OrderStatus; + +import java.time.Instant; +import java.util.UUID; + +public record CancelOrderResponse( + UUID id, + OrderStatus status, + Instant cancelledAt, + boolean stockRolledBack +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/ErrorResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/ErrorResponse.java new file mode 100644 index 0000000..024d587 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/ErrorResponse.java @@ -0,0 +1,12 @@ +package com.andwati.orders.dto.response; + +import java.time.Instant; + +public record ErrorResponse( + String error, + String message, + Object details, + Instant timestamp, + String path +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/FareCalculationResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/FareCalculationResponse.java new file mode 100644 index 0000000..19c8c73 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/FareCalculationResponse.java @@ -0,0 +1,16 @@ +package com.andwati.orders.dto.response; + + +import java.math.BigDecimal; + +public record FareCalculationResponse( + BigDecimal distanceKm, + BigDecimal baseFare, + BigDecimal perKmRate, + BigDecimal surgeMultiplier, + BigDecimal minimumFare, + BigDecimal calculatedFare, + String currency, + String formula +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/InventoryItemResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/InventoryItemResponse.java new file mode 100644 index 0000000..a77ca46 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/InventoryItemResponse.java @@ -0,0 +1,19 @@ +package com.andwati.orders.dto.response; + + +import com.andwati.orders.model.InventoryStatus; + +import java.time.Instant; +import java.util.UUID; + +public record InventoryItemResponse( + UUID productId, + String productName, + String sku, + int availableQuantity, + int reservedQuantity, + int reorderLevel, + InventoryStatus status, + Instant updatedAt +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/LowStockInventoryResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/LowStockInventoryResponse.java new file mode 100644 index 0000000..9772e7b --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/LowStockInventoryResponse.java @@ -0,0 +1,9 @@ +package com.andwati.orders.dto.response; + +import java.util.List; + +public record LowStockInventoryResponse( + int threshold, + List items +) { +} diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderItemResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderItemResponse.java new file mode 100644 index 0000000..cf57466 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderItemResponse.java @@ -0,0 +1,13 @@ +package com.andwati.orders.dto.response; + +import java.math.BigDecimal; +import java.util.UUID; + +public record OrderItemResponse( + UUID productId, + String productName, + int quantity, + BigDecimal unitPrice, + BigDecimal lineTotal +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderResponse.java new file mode 100644 index 0000000..521a801 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderResponse.java @@ -0,0 +1,20 @@ +package com.andwati.orders.dto.response; + +import com.andwati.orders.model.OrderStatus; + +import java.math.BigDecimal; +import java.time.Instant; +import java.util.List; +import java.util.UUID; + +public record OrderResponse( + UUID id, + String customerName, + OrderStatus status, + List items, + BigDecimal totalAmount, + String currency, + Instant createdAt, + Instant cancelledAt +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderSummaryResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderSummaryResponse.java new file mode 100644 index 0000000..49250a2 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/OrderSummaryResponse.java @@ -0,0 +1,19 @@ +package com.andwati.orders.dto.response; + +import com.andwati.orders.model.OrderStatus; + +import java.math.BigDecimal; +import java.time.Instant; +import java.util.UUID; + +public record OrderSummaryResponse( + UUID id, + String customerName, + OrderStatus status, + BigDecimal totalAmount, + String currency, + int itemCount, + Instant createdAt, + Instant cancelledAt +) { +} \ No newline at end of file diff --git a/orders-backend/src/main/java/com/andwati/orders/dto/response/PageResponse.java b/orders-backend/src/main/java/com/andwati/orders/dto/response/PageResponse.java new file mode 100644 index 0000000..bb99d30 --- /dev/null +++ b/orders-backend/src/main/java/com/andwati/orders/dto/response/PageResponse.java @@ -0,0 +1,12 @@ +package com.andwati.orders.dto.response; + +import java.util.List; + +public record PageResponse( + List items, + int page, + int size, + long totalItems, + int totalPages +) { +} \ No newline at end of file