package com.recipeapp.recipe.dto; import jakarta.validation.Valid; import jakarta.validation.constraints.*; import java.math.BigDecimal; import java.util.List; import java.util.UUID; public record RecipeCreateRequest( @NotBlank @Size(max = 200) String name, @Min(1) @Max(20) short serves, @Min(0) short cookTimeMin, @NotBlank @Pattern(regexp = "easy|medium|hard") String effort, boolean isChildFriendly, @Size(max = 500) String heroImageUrl, @NotEmpty @Valid List ingredients, @Valid List steps, @NotEmpty List tagIds ) { public record IngredientEntry( UUID ingredientId, @Size(max = 200) String newIngredientName, @NotNull @DecimalMin("0.01") BigDecimal quantity, @NotBlank @Size(max = 20) String unit, short sortOrder ) {} public record StepEntry( @Min(1) short stepNumber, @NotBlank String instruction ) {} }