RF-001 — Banners: piezas gráficas reutilizables
|
|
| Estado |
Implementado |
| Tipo |
Colección propia |
| Ubicación |
src/collections/Banners.ts · slug banners |
| Depende de |
RF-000 · destinos — RF-005 · medios — RF-006 |
Requisito
Administrar piezas gráficas promocionales como entidad independiente y reutilizable, con versión
de escritorio y versión móvil, destino de clic configurable y botón de acción opcional
posicionable sobre la imagen; y permitir su uso desde varias páginas manteniendo un único punto
de edición.
Solución adoptada
Modelar el banner como colección propia de lectura pública, y no como contenido embebido en la
página. El bloque hero referencia un banner en lugar de definir su contenido, de modo que la
modificación de la pieza se propaga a todas las páginas que la utilizan.
flowchart LR
B[(banners)]
P1[Página A · bloque hero] --> B
P2[Página B · bloque hero] --> B
B --> M[(media)]
B --> L[linkConfig · destino del clic]
B --> C[ctaButton · botón opcional]
SF([Storefront]) -->|REST · GraphQL| B
Modelo de datos
| Campo |
Tipo |
Regla |
titulo |
texto |
Requerido. Identifica la pieza en el listado del panel |
imagen |
upload → media |
Requerido. Versión de escritorio |
imagenMobile |
upload → media |
Opcional. Versión móvil |
link |
grupo linkConfig |
Destino del clic sobre la pieza, sin etiqueta visible |
cta |
grupo ctaButton |
Botón opcional; posición por defecto bottom-center |
enlace |
texto |
[Obsoleto] — oculto, conservado por compatibilidad con filas anteriores |
Reglas de negocio
- Exponer la colección con lectura pública: es contrato con el storefront.
- Reservar la escritura a usuarios autenticados del panel.
- Exigir imagen de escritorio y admitir la móvil como opcional: sin versión móvil, el storefront
reutiliza la de escritorio.
- Ubicar el botón sobre la pieza mediante una grilla de nueve posiciones, sin coordenadas libres.
- Conservar los campos superados en estado oculto en lugar de eliminarlos, para no invalidar las
filas ya cargadas.
Criterios de aceptación
| # |
Criterio |
| 1 |
Crear un banner con imagen de escritorio y destino, y consumirlo por API sin autenticación |
| 2 |
Referenciar el mismo banner desde dos páginas y ver el cambio reflejado en ambas tras una sola edición |
| 3 |
Cargar imagen móvil diferenciada y recibirla en la respuesta de la API |
| 4 |
Agregar un botón con texto, destino y posición, y omitirlo cuando no se configura |
Limitaciones conocidas
- Carecer de ventana de vigencia: el banner se publica o se retira manualmente, sin fechas de
inicio y fin como sí tienen los slides (RF-002).
- Mantener el campo
enlace sin uso, solo por compatibilidad.