Clientes · RF-01
Modelo
| Tabla | Qué guarda |
|---|---|
customers | La cuenta: razón social, documento, contacto, ubicación, segmento, riesgo |
customer_contacts | Personas dentro de la cuenta |
customer_crops | Cultivos, con hectáreas y ventana de campaña |
customer_assets | La maquinaria concreta en campo, con número de serie |
Por qué contactos aparte
Una empresa agrícola tiene administrador, jefe de campo y operario. El ticket lo abre una persona concreta, no «la empresa». Sin esa distinción, la bitácora dice «el cliente respondió» sin decir quién.
Por qué activos aparte del catálogo
products es el modelo genérico; customer_assets es la bomba con número de
serie SN-4471 que está en el campo de Pedro. Un ticket referencia el activo,
no el producto: es lo que permite saber qué máquina concreta falla, cuántas
horas lleva y cuándo toca su mantenimiento.
Cultivos
Determinan qué maquinaria e insumos tienen sentido para ese cliente y en qué ventana del año conviene contactarlo. La campaña se guarda como meses de inicio y fin.
Derivados que mantiene la base
Valor de vida, número de compras, ticket medio, días sin comprar, segmento y
estado los recalcula el trigger sales_refresh_customer con cada venta.
Listar clientes con su valor de vida es la consulta más frecuente del sistema; recalcularla en cada listado sería absurdo.
Segmentación
Por volumen de compra acumulado, con umbrales configurables: bronce, plata (≥ 5 000), oro (≥ 20 000), platino (≥ 50 000).
Búsqueda
Un solo campo busca por nombre, razón social, documento, teléfono y WhatsApp, tolerante a tildes y erratas gracias al índice de trigramas. Imprescindible con apellidos como «Ñiquén Ancajima».
Relacionado: Dimensión 3 Retención y recompra · Tickets