fix(vad-ska-vi-ata): visa betyg (stjarnor) i listan

ScoredRecommendation som rankAll returnerar bar inte ratingAverage/ratingCount,
sa svaret till mobilen saknade dem helt -> stjarnorna syntes aldrig aven efter
satt betyg. Aterkopplar nu betyg per recept fran kandidaterna i svaret.
This commit is contained in:
Claude
2026-08-19 17:28:14 +00:00
parent 935c613c75
commit bde08a0d2f
+15 -1
View File
@@ -511,6 +511,16 @@ export async function recommendationRoutes(app: FastifyInstance) {
: "Färdig mat som väntar snabbaste middagen i huset.",
}));
// Betyg (stjärnor) finns på kandidaterna men följer INTE med i
// ScoredRecommendation som rankAll returnerar. Återkoppla dem per recept så
// mobilen kan visa "★ 4,5 · 12" i listan (annars syns aldrig satta betyg).
const ratingByRecipe = new Map(
scoredCandidates.map((c) => [
c.recipeId,
{ average: c.ratingAverage, count: c.ratingCount },
]),
);
return {
mealType: q.mealType,
context: {
@@ -526,7 +536,11 @@ export async function recommendationRoutes(app: FastifyInstance) {
view: q.view,
},
mealBoxSuggestions,
recommendations,
recommendations: recommendations.map((r) => ({
...r,
ratingAverage: ratingByRecipe.get(r.recipeId)?.average ?? null,
ratingCount: ratingByRecipe.get(r.recipeId)?.count ?? 0,
})),
};
});
}