Saltearse al contenido

Bitácora

La bitácora es el registro de trabajo de un sitio: entradas cortas y fechadas, sin las puertas del blog. Se usa cuando no hay quien escriba artículos largos pero sí trabajo que contar, y cuando ese trabajo debe aparecer en la ficha de lo que se vende. Una entrada se publica con un titular y una fecha; nada más.

  • Entradas con titular, fecha del hecho, tipo e imágenes. Se ordenan por la fecha del hecho, no por la de carga: se sube el lunes lo que se hizo el viernes.
  • Se vinculan a ofertas del sitio y se pintan dentro de su ficha, así que el trabajo de campo alimenta la página que tiene que rankear. Un blog no sabe de qué producto habla.
  • Panel: /api/project-logs. Público: /api/project-log/entries, /api/project-log/by-product/{slug} y /api/project-log/entries/{slug}, más una variante por slug de sitio.
  • La etiqueta visible del tipo la deriva la API (type_label), para que ningún frontend mantenga su propio mapa.
  • Cada entrada publicada se cobra una vez. Corregir una errata no vuelve a cobrar, y despublicar y republicar tampoco: el espacio que ocupa ya se consumió.
  • Es núcleo: viene en todos los planes y no se apaga desde el panel.
  • De una credencial con la habilidad project-log. La ruta pública lleva module:bitacora y token.ability:project-log.
  • De la oferta del sitio si quieres vincular entradas: el vínculo apunta a Portafolio.

No se apaga: es núcleo, y el panel responde 422 con «El módulo núcleo no se puede desactivar». Lo que sí puede fallar es el feed: un token al que le falta la habilidad project-log recibe 403 y el sitio lo pinta como «no hay entradas», un fallo mudo con aspecto de estado normal. Si el sitio queda suspendido por plan vencido, el feed deja de responder, pero las entradas siguen guardadas y vuelven tal cual.

  • Prefijo singular y plural. El panel usa project-logs; el público, project-log. Los dos grupos peleaban la misma ruta y ganaba el que se registrara antes, así que el panel recibía el 403 del controlador público y la pantalla se quedaba cargando.
  • Un producto de otro sitio no se vincula: se descarta sin error. La ficha de un cliente no pinta la bitácora de otro.
  • Producto sin entradas devuelve 200 con lista vacía; producto inexistente devuelve 404. La ficha los trata distinto: sin entradas no pinta la sección; con el slug roto, la página entera es 404.
  • Un PATCH sin products no vacía los vínculos; products: [] sí.
  • Un tipo desconocido da 422. Los valores del enum no los cubre ninguna otra red y sus fallos son mudos.
  • Publicar no exige calidad a propósito. Si alguien añade una validación “de calidad” y este caso falla, lo que sobra es la validación.
  • Al desplegar, un token con habilidades explícitas necesita project-log añadida; los que llevan * no.