Implement Recipe, Planning, Shopping, Pantry, and Admin domains

Outside-in TDD for all 5 remaining domains (128 tests total):
- Recipe: CRUD, ingredients autocomplete/patch, tags, categories (27 tests)
- Planning: week plans, slots, confirm, suggestions, variety score, cooking logs (24 tests)
- Shopping: generate from plan, publish, check/add/remove items (15 tests)
- Pantry: CRUD with expiry sorting (11 tests)
- Admin: user management, password reset, audit logging (13 tests)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-01 21:56:51 +02:00
parent 4f457303d8
commit 9ec703abcd
88 changed files with 5267 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
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<IngredientEntry> ingredients,
@Valid List<StepEntry> steps,
@NotEmpty List<UUID> 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
) {}
}