# Paso 4 · Deuda con destino

## 1 · El flip opcional/obligatorio pasa de inerte a vivo → editor de guías (mentor)

Desde el paso 4, `recipe_steps` es un interruptor: una fila (recipe_id,
guide_step_id) significa "este paso **opcional** está encendido para esta receta".
Los obligatorios no tienen fila; van siempre.

**Consecuencia nueva:** editar `guide_steps.is_optional` deja de ser inerte. Hoy
el admin de pasos de guía lo edita sin guarda, y:

- **obligatorio → opcional:** las recetas que no tengan fila de encendido para ese
  paso **lo pierden en silencio** en tandas nuevas (antes lo daban por hecho como
  obligatorio). El proceso de esas recetas cambia sin que nadie lo pida.
- **opcional → obligatorio:** las filas de encendido existentes quedan redundantes
  (sedimento inofensivo: el paso ya va siempre).

**No se resuelve en el paso 4** (solo diagnóstico). **Destino: el editor de guías
del mentor.** Cuando ese editor exista, degradar un paso a opcional debe decidir
explícitamente qué pasa con las recetas que lo daban por hecho — p.ej. auto-crear
la fila de encendido en todas las recetas afectadas (preserva la conducta), o
avisar al editor. La barandilla correcta se pone ahí, no en el esquema.

## 2 · Favoritos y likes → cuando exista la feature (paso 6+)

Decidido en el paso 4, no construido: **favorito ≠ like**. Like es señal pública
y contable ("a N personas les gusta esta receta"); favorito es marcador privado
("guardo ésta para mí"). Dos tablas, dos propósitos. Cuando llegue la feature de
recetas marcadas/compartibles se diseña limpia (tabla usuario × receta), sin
resucitar la `recipes.likes_count` que se borró en el paso 4. `users.favorite_guide_id`
(parche del paso 3) también muere entonces.

## 3 · Capa social de recetas → cuando exista

`visibility`, `status`, `is_official`, `times_brewed` NO son "capa social": son la
maquinaria del catálogo, viva. Las cuatro columnas realmente sociales
(`source_recipe_id`, `likes_count`, `rating_avg`, `rating_count`) se borraron en el
paso 4 — eran restos de una feature social intentada y no construida (rating
mostraba ceros perpetuos, mentía). Cuando el propietario diseñe recetas de usuario
compartibles, se hace desde cero.
