Files
reformix-hackaton/mvp/b2c/db-schema
Carlos Narro f2b19ab719 Añade estructura aditiva del flujo WhatsApp/llamada + workers (DB única)
Integra el esquema "reformix-full" del equipo de forma ADITIVA, sin tocar los
enums ni columnas existentes de la app (una sola DB, Drizzle es el dueño):
- Enums nuevos: estado_wa, canal_contacto, canal_origen, resultado_contacto,
  rol_mensaje, job_tipo, job_estado, nivel_calificacion, visita_estado.
- Tablas nuevas: conversacion_whatsapp, intentos_contacto, lead_calificacion
  (score 0-100 + nivel A/B/C/D), visitas, worker_jobs (cola async de los
  workers de fotos/render/presupuesto). Referencian nuestros leads/users/tenants.
- Columnas nuevas en leads (nullable, las rellena el bot/Luisa): estado_wa,
  canal_origen, espacio, rango_m2, estilo, presupuesto_declarado, viable,
  fotos_solicitadas_at.
- Migración 0010 + db-schema/schema.sql regenerado.

El bot/n8n escribe estas tablas en la DB única y usa nuestros leads (creados
solo desde el form web). Pendiente: alinear valores de lead_estado/pipeline_stage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 16:45:14 +02:00
..

Esquema de la base de datos — Reformix B2C

schema.sql es el DDL consolidado de toda la base de datos en su estado actual: 12 enums, 14 tablas, sus claves foráneas e índices. Sirve para que el equipo entienda, consulte y proponga cambios sobre el modelo de datos sin tener que leer las migraciones una a una.

Tablas

Tabla Para qué
tenants Reformistas (multi-tenant; en el MVP solo "Reformas Ejemplo")
plans Planes de suscripción
users / sessions Auth del panel del reformista
leads Lead del cliente final + estado del funnel + resultado (presupuesto, render, transcripción)
lead_fotos Fotos que sube el cliente del espacio a reformar
lead_pipeline_eventos Traza de cada paso del pipeline (prellamada, llamada, render, presupuesto, WhatsApp)
lead_estado_history Historial de cambios de estado comercial del lead
catalog_items Catálogo de materiales del reformista (precio, calidad, unidad) — entrada del motor de presupuesto
pricing_config Config de precios del reformista (mano de obra, márgenes…)
precision_history Histórico de precisión de las estimaciones
galeria_fotos Galería de trabajos del reformista
testimonios / testimonio_fotos Reseñas con fotos

Importante: la fuente de la verdad es src/db/schema.ts

No edites schema.sql a mano. El esquema real vive en src/db/schema.ts (Drizzle ORM) y los cambios se aplican con migraciones en drizzle/. Este archivo es una foto generada a partir de ese schema.

Para cambiar el modelo de datos

  1. Edita src/db/schema.ts.
  2. Genera la migración: npx drizzle-kit generate
  3. Aplícala: npx drizzle-kit migrate
  4. Regenera esta foto (ver abajo).

Regenerar schema.sql

cd mvp/b2c
npm run db:export

Levantar una base de datos local desde cero con este SQL

docker run --name reformix-pg -e POSTGRES_PASSWORD=reformix -e POSTGRES_DB=reformix -p 5432:5432 -d postgres:17
psql "postgresql://postgres:reformix@localhost:5432/reformix" -f db-schema/schema.sql

El export no incluye datos semilla (tenant de ejemplo, catálogo, planes). Para eso usa el seed del proyecto si existe, o inserta los registros base manualmente.