diff --git a/api/index.php b/api/index.php index 5767db8..67f1638 100644 --- a/api/index.php +++ b/api/index.php @@ -1226,29 +1226,47 @@ function generateRecipe(PDO $db): void { // Today's previous recipes from DB - avoid repetition $todayText = ''; $today = date('Y-m-d'); - $todayStmt = $db->prepare("SELECT recipe_json FROM recipes WHERE date = ?"); - $todayStmt->execute([$today]); - $todayDbRecipes = $todayStmt->fetchAll(); + $weekAgo = date('Y-m-d', strtotime('-7 days')); + + // Get this week's recipes for variety + $weekStmt = $db->prepare("SELECT date, meal, recipe_json FROM recipes WHERE date >= ? ORDER BY date DESC"); + $weekStmt->execute([$weekAgo]); + $weekDbRecipes = $weekStmt->fetchAll(); + $todayTitles = []; - foreach ($todayDbRecipes as $tr) { + $weekTitles = []; + foreach ($weekDbRecipes as $tr) { $rj = json_decode($tr['recipe_json'], true); - if (!empty($rj['title'])) $todayTitles[] = $rj['title']; + if (!empty($rj['title'])) { + $weekTitles[] = $rj['title']; + if ($tr['date'] === $today) { + $todayTitles[] = $rj['title']; + } + } } if (!empty($todayRecipes)) { $todayTitles = array_unique(array_merge($todayTitles, $todayRecipes)); } + + $varietyText = ''; if (!empty($todayTitles)) { $todayList = implode(', ', array_map(function($t) { return '"' . $t . '"'; }, $todayTitles)); - $todayText = "\n\nRICETTE GIÀ PREPARATE OGGI:\n{$todayList}\nNON proporre una ricetta simile o con lo stesso concetto di quelle già fatte oggi. Varia il tipo di piatto, gli ingredienti principali e lo stile di cucina. Ad esempio se a pranzo c'era una piadina, a cena proponi pasta, riso, zuppa o altro — MAI un'altra piadina o wrap o piatto concettualmente simile."; + $varietyText .= "\n\nRICETTE GIÀ PREPARATE OGGI:\n{$todayList}\nNON proporre una ricetta simile o con lo stesso concetto di quelle già fatte oggi. Varia il tipo di piatto, gli ingredienti principali e lo stile di cucina. Ad esempio se a pranzo c'era una piadina, a cena proponi pasta, riso, zuppa o altro — MAI un'altra piadina o wrap o piatto concettualmente simile."; + } + // Weekly variety: list all recent recipes so AI avoids repetition + $weekOnly = array_diff($weekTitles, $todayTitles); + if (!empty($weekOnly)) { + $weekList = implode(', ', array_map(function($t) { return '"' . $t . '"'; }, array_values($weekOnly))); + $varietyText .= "\n\nRICETTE DEGLI ULTIMI 7 GIORNI:\n{$weekList}\nCerca di variare rispetto a queste ricette recenti: evita piatti troppo simili o con gli stessi ingredienti principali. Alterna pasta, riso, zuppe, carne, pesce, verdure, piatti freddi, ecc."; } $prompt = <<