conector-canonico, que hace la
transformación, seudonimiza los clientes y deja un fichero de eventos listo para
el validador.
Convenciones
- Un fichero por tabla, CSV (UTF-8, cabecera, vacío = nulo) o Parquet, con el
nombre de la tabla:
tickets.csv,lineas_ticket.parquet… - Fechas en UTC. ISO-8601 con
Zu offset; si vienen sin zona se interpretan como UTC (o la zona que indiques con--zona-naive). - Dinero en MXN sin IVA, salvo
tickets.total, que es el total impreso en el ticket (con IVA) y sirve para comprobar el IVA. cliente_ides el identificador interno del CRM. El conector lo seudonimiza con una sal que guardas tú; ningún identificador en claro llega al motor.- Solo se admiten las columnas listadas; una columna desconocida detiene la carga.
Tablas
clientes
Un registro por cliente identificable en el CRM.
tickets
Una fila por ticket de venta.
lineas_ticket
Una fila por línea de ticket. El margen sale de margen, de importe − coste o del coste estándar del artículo, en ese orden.
articulos
Catálogo de artículos con su categoría (la unidad de agregación de las compras).
campanas (opcional)
Campañas de cupones (opcional; da contexto a los envíos).
cupones_emitidos
Un cupón enviado a un cliente. Genera CUPON_RECIBIDO y, si vence sin redención, CUPON_CADUCADO.
redenciones
Un cupón usado en un ticket.
bajas (opcional)
Bajas de comunicaciones o de cuenta.
Transformar y validar
--zona-naive America/Mexico_City para fechas sin zona en hora local;
--margen-desconocido cero|pct:30 si hay líneas sin margen, coste ni coste
estándar (por defecto se detiene); --sin-caducados para no sintetizar
CUPON_CADUCADO a partir de los cupones vencidos sin redención.
Si prefieres tablas en Postgres
El mismo modelo como DDL, para llenarlo con vistas oINSERT desde tu CRM y
exportarlo después a CSV o Parquet:
esquema.sql
esquema.sql