package com.recipeapp.planning; import com.recipeapp.planning.dto.*; import com.recipeapp.recipe.HouseholdResolver; import jakarta.validation.Valid; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.security.Principal; import java.util.List; import java.util.UUID; @RestController @RequestMapping("/v1/cooking-logs") public class CookingLogController { private final PlanningService planningService; private final HouseholdResolver householdResolver; public CookingLogController(PlanningService planningService, HouseholdResolver householdResolver) { this.planningService = planningService; this.householdResolver = householdResolver; } @PostMapping public ResponseEntity createCookingLog( Principal principal, @Valid @RequestBody CreateCookingLogRequest request) { UUID householdId = householdResolver.resolve(principal.getName()); UUID userId = householdResolver.resolveUserId(principal.getName()); CookingLogResponse response = planningService.createCookingLog(householdId, userId, request); return ResponseEntity.status(HttpStatus.CREATED).body(response); } @GetMapping public List listCookingLogs( Principal principal, @RequestParam(defaultValue = "30") int limit, @RequestParam(defaultValue = "0") int offset) { UUID householdId = householdResolver.resolve(principal.getName()); return planningService.listCookingLogs(householdId, limit, offset); } }