feat(clientes-maestro): importar y exportar clientes del archivo maestro

- Tabla ClienteMaestro (27 campos, unique numCliente)
- Importador Excel: 1535 clientes del Reporte maestro
- API: listar/filtros/exportar/detalle/importar
- Frontend: tabla paginada, filtros, exportar Excel
- Dark mode completo, 52 tests verdes
This commit is contained in:
2026-09-07 09:11:09 +00:00
parent c2a8f4e929
commit 9021733455
18 changed files with 1428 additions and 10 deletions

View File

@@ -0,0 +1,38 @@
-- Tabla de clientes maestro (importado desde Excel).
-- Patrón manual: sqlite3 + _prisma_migrations. NUNCA migrate dev.
-- CreateTable ClienteMaestro
CREATE TABLE IF NOT EXISTS "ClienteMaestro" (
"id" TEXT NOT NULL PRIMARY KEY,
"numCliente" TEXT NOT NULL,
"nombre" TEXT NOT NULL,
"apellidoPaterno" TEXT NOT NULL,
"apellidoMaterno" TEXT,
"sexo" TEXT,
"telefono" TEXT,
"email" TEXT,
"estadoCivil" TEXT,
"rangoEdad" TEXT,
"ocupacion" TEXT,
"rangoIngresos" TEXT,
"credito" TEXT,
"institucion" TEXT,
"medioContacto" TEXT,
"canal" TEXT,
"desarrollo" TEXT,
"manzana" TEXT,
"lote" TEXT,
"interior" TEXT,
"tipoCasa" TEXT,
"etapa" TEXT,
"valorTotal" REAL,
"estatus" TEXT,
"fechaLiberacion" DATETIME,
"vendedor" TEXT,
"vendedorId" TEXT,
"importadoEn" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX IF NOT EXISTS "ClienteMaestro_numCliente_key" ON "ClienteMaestro"("numCliente");
CREATE INDEX IF NOT EXISTS "ClienteMaestro_desarrollo_idx" ON "ClienteMaestro"("desarrollo");
CREATE INDEX IF NOT EXISTS "ClienteMaestro_estatus_idx" ON "ClienteMaestro"("estatus");
CREATE INDEX IF NOT EXISTS "ClienteMaestro_vendedor_idx" ON "ClienteMaestro"("vendedor");