Servicios y Funciones
getTagPromotions
Función asíncrona que obtiene todas las promociones etiquetadas desde el backend.
const getTagPromotions = async () => TagPromotion[]
Descripción
- Realiza una consulta GraphQL al backend de Directus
- Filtra por promociones con estado 'published'
- Retorna un array de TagPromotion o un array vacío si no hay resultados
getActiveTagPromotion
Función que filtra y ordena las promociones activas según varios criterios.
const getActiveTagPromotion = (
landings: string[],
tagPromotions: TagPromotion[]
) => TagPromotionPosition
Descripción
- Filtra promociones basadas en:
- Coincidencia con landings
- Fechas de validez (si date_mode es true)
- Posición (left/right)
- Ordena por prioridad
- Maneja promociones forzadas (force_display)
- Retorna un objeto TagPromotionPosition con las promociones filtradas y ordenadas
Lógica de Filtrado
- Verifica coincidencia de landing pages
- Valida fechas si date_mode está activo
- Separa promociones por posición
- Ordena por prioridad
- Aplica reglas de force_display
Uso de Prioridad
- Las promociones se ordenan de mayor a menor prioridad
- Se muestra siempre la promoción con mayor prioridad
- Las promociones con force_display pueden mostrarse adicionalmente