Skip to main content
Schema loyalty. Depende de core; nunca referencia tablas de messaging ni de crm (standards/data.md §1). Toda tabla lleva program_id NOT NULL desde la primera migración (ADR-021). La columna Forma es la de ADR-024 y determina las columnas base: A dominio con alcance de tenant · B append-only · C catálogo paramétrico. La definición completa de cada tabla —tipos, restricciones, índices y su registro de cambios— vive en Schemas.

Programa y monedas

El libro de puntos

Motor de reglas

Catálogo y canjes

Cupones

Combinabilidad de beneficios

Referidos

Niveles

Vencimientos

Gamificación (F2)

Wallet passes (F1b)

Lo que este schema no tiene

  • Ninguna tabla de contacto. El contacto es de core (ADR-009). loyalty guarda contact_id y nada más sobre la persona.
  • Ninguna tabla de envío. Avisar de un vencimiento es un evento que messaging consume.
  • Ninguna columna de saldo mutable. Está prohibida en todo el módulo: el saldo es una proyección reconstruible, y contact_balance documenta su procedimiento de reconstrucción.
  • Ningún monto de dinero mezclado con puntos. points_amount es INTEGER contra una moneda de puntos; el dinero es amount BIGINT con su currency_code (standards/data.md §3).