CreateOrderRequest.java
package com.github.danielemasone.orderevents.api.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.math.BigDecimal;
/**
* Request payload accepted by the REST API when a client asks the service to create a new order.
*/
@Schema(description = "Payload used to create an order and publish its creation event.")
public record CreateOrderRequest(
@Schema(description = "External customer identifier.", example = "customer-001",
requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank
@Size(max = 120)
String customerId,
@Schema(description = "Order amount. Must be greater than zero.", example = "199.90",
requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull
@DecimalMin(value = "0.01")
@Digits(integer = 17, fraction = 2)
BigDecimal amount
) {
}