From fe2cd3827738ae7788b7f0e9d640196e3bd5c40b Mon Sep 17 00:00:00 2001 From: Madeleine Stamp Date: Wed, 4 Mar 2026 13:59:31 -0700 Subject: [PATCH] Update 4 files - /demo/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java - /demo/src/main/java/com/example/demo/dto/IngredientDto.java - /demo/src/main/java/com/example/demo/dto/RecipeCreateRequest.java - /demo/src/main/java/com/example/demo/dto/RecipeResponse.java --- .../com/example/demo/dto/IngredientDto.java | 23 +++++++- .../example/demo/dto/RecipeCreateRequest.java | 56 +++++++++++++++++- .../com/example/demo/dto/RecipeResponse.java | 48 +++++++++++++++ .../example/demo/dto/RecipeUpdateRequest.java | 59 +++++++++++++++++++ 4 files changed, 184 insertions(+), 2 deletions(-) create mode 100644 demo/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java diff --git a/demo/src/main/java/com/example/demo/dto/IngredientDto.java b/demo/src/main/java/com/example/demo/dto/IngredientDto.java index b718b65..624e18d 100644 --- a/demo/src/main/java/com/example/demo/dto/IngredientDto.java +++ b/demo/src/main/java/com/example/demo/dto/IngredientDto.java @@ -1,5 +1,26 @@ package com.example.demo.dto; +import java.math.BigDecimal; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.PositiveOrZero; + public class IngredientDto { -} + @NotBlank(message = "ingredientName is required") + private String ingredientName; + + @PositiveOrZero(message = "quantity must be 0 or greater") + private BigDecimal quantity; + + private String unit; + + public String getIngredientName() { return ingredientName; } + public void setIngredientName(String ingredientName) { this.ingredientName = ingredientName; } + + public @PositiveOrZero(message = "quantity must be 0 or greater") BigDecimal getQuantity() { return quantity; } + public void setQuantity(BigDecimal bigDecimal) { this.quantity = bigDecimal; } + + public String getUnit() { return unit; } + public void setUnit(String unit) { this.unit = unit; } +} \ No newline at end of file diff --git a/demo/src/main/java/com/example/demo/dto/RecipeCreateRequest.java b/demo/src/main/java/com/example/demo/dto/RecipeCreateRequest.java index 00739e3..f45b179 100644 --- a/demo/src/main/java/com/example/demo/dto/RecipeCreateRequest.java +++ b/demo/src/main/java/com/example/demo/dto/RecipeCreateRequest.java @@ -1,5 +1,59 @@ package com.example.demo.dto; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.PositiveOrZero; +import jakarta.validation.constraints.Size; + +import java.util.List; + +import com.example.demo.dto.StepDto; + public class RecipeCreateRequest { -} + @NotBlank(message = "title is required") + @Size(max = 100, message = "title must be 100 characters or less") + private String title; + + @Size(max = 1000, message = "description must be 1000 characters or less") + private String description; + + @PositiveOrZero(message = "prepTimeMinutes must be 0 or greater") + private int prepTimeMinutes; + + @PositiveOrZero(message = "cookTimeMinutes must be 0 or greater") + private int cookTimeMinutes; + + @PositiveOrZero(message = "servings must be 0 or greater") + private int servings; + + @NotNull(message = "ingredients list is required") + @Valid + private java.util.List ingredients; + + @NotNull(message = "steps list is required") + @Valid + private java.util.List steps; + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getDescription() { return description; } + public void setDescription(String description) { this.description = description; } + + public int getPrepTimeMinutes() { return prepTimeMinutes; } + public void setPrepTimeMinutes(int prepTimeMinutes) { this.prepTimeMinutes = prepTimeMinutes; } + + public int getCookTimeMinutes() { return cookTimeMinutes; } + public void setCookTimeMinutes(int cookTimeMinutes) { this.cookTimeMinutes = cookTimeMinutes; } + + public int getServings() { return servings; } + public void setServings(int servings) { this.servings = servings; } + + public java.util.List getIngredients() { return ingredients; } + public void setIngredients(java.util.List ingredients) { this.ingredients = ingredients; } + + public java.util.List getSteps() { return steps; } + public void setSteps(java.util.List steps) { this.steps = steps; } +} \ No newline at end of file diff --git a/demo/src/main/java/com/example/demo/dto/RecipeResponse.java b/demo/src/main/java/com/example/demo/dto/RecipeResponse.java index c3e509b..659b213 100644 --- a/demo/src/main/java/com/example/demo/dto/RecipeResponse.java +++ b/demo/src/main/java/com/example/demo/dto/RecipeResponse.java @@ -1,5 +1,53 @@ package com.example.demo.dto; +import java.time.LocalDateTime; +import java.util.List; + +import com.example.demo.dto.StepDto; + public class RecipeResponse { + private Long id; + private String title; + private String description; + + private int prepTimeMinutes; + private int cookTimeMinutes; + private int servings; + + private List ingredients; + private List steps; + + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getDescription() { return description; } + public void setDescription(String description) { this.description = description; } + + public int getPrepTimeMinutes() { return prepTimeMinutes; } + public void setPrepTimeMinutes(int prepTimeMinutes) { this.prepTimeMinutes = prepTimeMinutes; } + + public int getCookTimeMinutes() { return cookTimeMinutes; } + public void setCookTimeMinutes(int cookTimeMinutes) { this.cookTimeMinutes = cookTimeMinutes; } + + public int getServings() { return servings; } + public void setServings(int servings) { this.servings = servings; } + + public List getIngredients() { return ingredients; } + public void setIngredients(List ingredients) { this.ingredients = ingredients; } + + public List getSteps() { return steps; } + public void setSteps(List steps) { this.steps = steps; } + + public LocalDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } + + public LocalDateTime getUpdatedAt() { return updatedAt; } + public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; } } diff --git a/demo/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java b/demo/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java new file mode 100644 index 0000000..3482f03 --- /dev/null +++ b/demo/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java @@ -0,0 +1,59 @@ +package com.example.demo.dto; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.PositiveOrZero; +import jakarta.validation.constraints.Size; + +import java.util.List; + +import com.example.demo.dto.StepDto; + +public class RecipeUpdateRequest { + + @NotBlank(message = "title is required") + @Size(max = 100, message = "title must be 100 characters or less") + private String title; + + @Size(max = 1000, message = "description must be 1000 characters or less") + private String description; + + @PositiveOrZero(message = "prepTimeMinutes must be 0 or greater") + private int prepTimeMinutes; + + @PositiveOrZero(message = "cookTimeMinutes must be 0 or greater") + private int cookTimeMinutes; + + @PositiveOrZero(message = "servings must be 0 or greater") + private int servings; + + @NotNull(message = "ingredients list is required") + @Valid + private List ingredients; + + @NotNull(message = "steps list is required") + @Valid + private List steps; + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getDescription() { return description; } + public void setDescription(String description) { this.description = description; } + + public int getPrepTimeMinutes() { return prepTimeMinutes; } + public void setPrepTimeMinutes(int prepTimeMinutes) { this.prepTimeMinutes = prepTimeMinutes; } + + public int getCookTimeMinutes() { return cookTimeMinutes; } + public void setCookTimeMinutes(int cookTimeMinutes) { this.cookTimeMinutes = cookTimeMinutes; } + + public int getServings() { return servings; } + public void setServings(int servings) { this.servings = servings; } + + public List getIngredients() { return ingredients; } + public void setIngredients(List ingredients) { this.ingredients = ingredients; } + + public List getSteps() { return steps; } + public void setSteps(List steps) { this.steps = steps; } +} \ No newline at end of file