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).loyaltyguardacontact_idy nada más sobre la persona. - Ninguna tabla de envío. Avisar de un vencimiento es un evento que
messagingconsume. - Ninguna columna de saldo mutable. Está prohibida en todo el módulo: el saldo es una proyección
reconstruible, y
contact_balancedocumenta su procedimiento de reconstrucción. - Ningún monto de dinero mezclado con puntos.
points_amountes INTEGER contra una moneda de puntos; el dinero esamountBIGINT con sucurrency_code(standards/data.md§3).