chore: merge master — adopt SlotResponse.SlotRecipe in SuggestionItem
Resolves conflict by keeping master's refactor: SuggestionItem now reuses SlotResponse.SlotRecipe instead of the dedicated SuggestionRecipe record, removing the duplication and adding heroImageUrl to suggestion responses. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit was merged in pull request #53.
This commit is contained in:
@@ -153,7 +153,7 @@ public class PlanningService {
|
||||
plan, candidate, slotDate, config, recentlyCookedIds);
|
||||
double scoreDelta = simulatedScore - currentScore;
|
||||
boolean hasConflict = scoreDelta < 0;
|
||||
return new SuggestionResponse.SuggestionItem(toSuggestionRecipe(candidate), scoreDelta, hasConflict);
|
||||
return new SuggestionResponse.SuggestionItem(toSlotRecipe(candidate), scoreDelta, hasConflict);
|
||||
})
|
||||
.sorted((a, b) -> Double.compare(b.scoreDelta(), a.scoreDelta()))
|
||||
.limit(limit)
|
||||
@@ -422,11 +422,6 @@ public class PlanningService {
|
||||
recipe.getCookTimeMin(), recipe.getHeroImageUrl());
|
||||
}
|
||||
|
||||
private SuggestionResponse.SuggestionRecipe toSuggestionRecipe(Recipe recipe) {
|
||||
return new SuggestionResponse.SuggestionRecipe(recipe.getId(), recipe.getName(),
|
||||
recipe.getEffort(), recipe.getCookTimeMin());
|
||||
}
|
||||
|
||||
private boolean hasConsecutiveDays(List<LocalDate> days) {
|
||||
if (days.size() < 2) return false;
|
||||
List<LocalDate> sorted = days.stream().sorted().toList();
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package com.recipeapp.planning.dto;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public record SuggestionResponse(List<SuggestionItem> suggestions) {
|
||||
|
||||
public record SuggestionRecipe(UUID id, String name, String effort, short cookTimeMin) {}
|
||||
|
||||
public record SuggestionItem(
|
||||
SuggestionRecipe recipe,
|
||||
SlotResponse.SlotRecipe recipe,
|
||||
double scoreDelta,
|
||||
boolean hasConflict
|
||||
) {}
|
||||
|
||||
@@ -161,7 +161,7 @@ class WeekPlanControllerTest {
|
||||
|
||||
@Test
|
||||
void getSuggestionsShouldReturn200() throws Exception {
|
||||
var recipe = new SuggestionResponse.SuggestionRecipe(UUID.randomUUID(), "Stir Fry", "easy", (short) 15);
|
||||
var recipe = new SlotResponse.SlotRecipe(UUID.randomUUID(), "Stir Fry", "easy", (short) 15, null);
|
||||
var item = new SuggestionResponse.SuggestionItem(recipe, 1.5, false);
|
||||
var response = new SuggestionResponse(List.of(item));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user