batchCooking/apps/api/prisma/migrations
Nicolas 978fe71a11 feat(recipes): flag les ingrédients faisables maison + suggestion de recherche
Remplace la FK morte `Ingredient.alternateRecipeId` (jamais branchée nulle
part — confirmé par exploration : zéro usage en dehors de schema.prisma)
par un flag booléen `reproducible`, plus simple : pas de liaison
recette↔ingrédient en base, juste une info "ça vaut le coup d'être fait
maison" plus un raccourci de recherche.

- Migration : drop `alternate_recipe` (colonne + FK), ajoute
  `reproducible BOOLEAN NOT NULL DEFAULT false` sur `ingredients`.
- `reference-seed-data.ts` : `IngredientSeed` gagne `reproducible?`,
  threadé dans le flatten + la réconciliation `seedReferenceData`. Premier
  lot de 27 ingrédients marqués (pains, pâtes à cuire, sauces de base,
  bouillons/fonds) — même logique que la curation Ciqual : un lot solide
  plutôt qu'exhaustif sur les 546 ingrédients.
- `IngredientView` (shared) + les deux endroits qui la construisent
  (`reference.service.ts`, `recipe.service.ts`) gagnent `reproducible`.
- `ReproducibleBadge` (nouveau) : pastille "Faisable maison" — simple
  dans `IngredientPicker` (avec son propre toggle d'affichage), lien
  cliquable dans `IngredientRow` vers `/recettes?search=<nom>` ouvert
  dans un nouvel onglet (pour ne jamais perdre le formulaire de recette
  en cours — pas de persistance de brouillon dans `RecipeFormPage`).
- `RecipesPage` lit `?search=` au montage pour permettre ce deep-link.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 19:09:39 +02:00
..
20260816100611_init Add specs + Prisma schema for the documented data model (#3) 2026-08-16 12:23:59 +02:00
20260816105101_add_user_auth_fields API: signup/login (profile creation + JWT auth) (#4) 2026-08-16 13:45:23 +02:00
20260816230050_unique_diet_category_name API: seed régimes/allergènes + GET /reference/diets, /reference/allergies (step 1/6) 2026-08-16 23:09:02 +02:00
20260816235436_add_category_kind API: séparer allergies et intolérances (kind sur Category) (step 7/8) 2026-08-17 00:01:19 +02:00
20260817093000_add_house_admin_invite_code API: administrateur de foyer, code d'invitation, créer/rejoindre/quitter/supprimer (step 2/8) 2026-08-17 10:38:16 +02:00
20260817120000_add_user_preference Shared + migration: table user_preference (thème clair/sombre/système) (step 1/4) 2026-08-17 15:55:18 +02:00
20260817220730_ingredient_allergies feat(recipes): catalogue v2 - visibilité, favoris, régimes et catalogue d'ingrédients exhaustif 2026-08-18 09:29:11 +02:00
20260818054828_recipe_visibility_favorites_diets_dislikes feat(recipes): catalogue v2 - visibilité, favoris, régimes et catalogue d'ingrédients exhaustif 2026-08-18 09:29:11 +02:00
20260818081109_ingredient_category feat(recipes): catégories d'ingrédients + nouveau sélecteur 2026-08-18 10:24:12 +02:00
20260818104845_ingredient_diet fix(recipes): overflow des préférences + régimes liés aux ingrédients 2026-08-18 11:01:57 +02:00
20260818113250_ingredient_taxonomy_rework fix(migrations): rend la migration ingredient_taxonomy_rework safe sur des données existantes 2026-08-18 12:47:14 +02:00
20260818121549_ingredient_icon_type feat(recipes): remplace les emoji par des icônes SVG épurées 2026-08-18 12:30:25 +02:00
20260818190000_catalog_labels_to_keys chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
20260818193000_catalog_keys_to_english chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
20260819064721_planning_item_portions feat(planning): dialog de sélection de recette, création de planning, assignation avec portions 2026-08-19 14:44:02 +02:00
20260819165510_ingredient_reproducible_flag feat(recipes): flag les ingrédients faisables maison + suggestion de recherche 2026-08-19 19:09:39 +02:00
migration_lock.toml Add specs + Prisma schema for the documented data model (#3) 2026-08-16 12:23:59 +02:00