feat(mejoras): 14 mejoras al CRM Frasa
Fase 1 - UI: dark mode, skeletons, toasts Fase 2 - Filtros: avanzados Mi día, búsqueda global Ctrl+K Fase 3 - Datos: export Excel, notas apartados, auditoría Fase 4 - Dashboard: gráficas vendedor + métricas uso Fase 5 - Responsive: tablets optimizadas Fase 6 - PWA: IndexedDB offline, push notifications Backend: 3 tablas nuevas, 6 services, 6 endpoints nuevos 721 API tests + fronts verdes.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
-- Notas de apartado y bitácora de auditoría.
|
||||
-- Patrón manual: db execute + migrate resolve. NUNCA migrate dev.
|
||||
|
||||
-- CreateTable NotaApartado
|
||||
CREATE TABLE IF NOT EXISTS "NotaApartado" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"apartadoId" TEXT NOT NULL,
|
||||
"usuarioId" TEXT NOT NULL,
|
||||
"contenido" TEXT NOT NULL,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS "NotaApartado_apartadoId_idx" ON "NotaApartado"("apartadoId");
|
||||
|
||||
-- CreateTable AuditoriaLog
|
||||
CREATE TABLE IF NOT EXISTS "AuditoriaLog" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"usuarioId" TEXT NOT NULL,
|
||||
"accion" TEXT NOT NULL,
|
||||
"entidad" TEXT NOT NULL,
|
||||
"entidadId" TEXT NOT NULL,
|
||||
"detalle" TEXT,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS "AuditoriaLog_usuarioId_idx" ON "AuditoriaLog"("usuarioId");
|
||||
CREATE INDEX IF NOT EXISTS "AuditoriaLog_entidad_entidadId_idx" ON "AuditoriaLog"("entidad", "entidadId");
|
||||
CREATE INDEX IF NOT EXISTS "AuditoriaLog_createdAt_idx" ON "AuditoriaLog"("createdAt");
|
||||
Reference in New Issue
Block a user