Saltar al contenido principal

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

  1. Verifica coincidencia de landing pages
  2. Valida fechas si date_mode está activo
  3. Separa promociones por posición
  4. Ordena por prioridad
  5. 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