2.7 KiB
2.7 KiB
Design
Context
La app usa Vue Router, Vuetify y Dexie offline-first. El Layout actual sólo ofrece el drawer; las vistas no comparten contexto de ruta ni controles de historial. Productores, productos y ventas se guardan directamente desde las vistas y no existe una bitácora general de cambios.
Goals / Non-Goals
Goals:
- Hacer evidente cómo volver a Inicio o a la vista anterior en cualquier tamaño de pantalla.
- Procesar CSV localmente, sin backend, con errores por fila y resumen de importación.
- Mantener registros originales y almacenar auditorías inmutables de las ediciones.
- Reutilizar diálogos y tablas Vuetify para editar sin perder el contexto.
Non-Goals:
- Control de usuarios, autenticación o sincronización remota.
- Edición destructiva sin confirmación.
- Interpretar formatos de hoja de cálculo distintos de CSV UTF-8/compatible con separador coma o punto y coma.
Decisions
- Navegación en Layout: usar
router-link,router.back()yrouter.push('/')en un encabezado compartido. Se elige un encabezado sobre botones duplicados en vistas para garantizar consistencia. - Importación CSV en servicio: parsear encabezados con normalización Unicode NFD, validar cada fila y ejecutar una transacción Dexie. Se rechazan filas inválidas sin abortar las válidas y se entrega un resumen.
- Auditoría append-only: agregar una tabla
auditoriascon entidad, registro, operación, actor, motivo, fecha y snapshots JSON. Las ediciones actualizan el registro y agregan la auditoría en una misma transacción. - Ventas editables como corrección controlada: conservar el id y registrar diferencias de líneas/inventario; exigir motivo y actor antes de persistir.
- Compatibilidad de datos: nueva versión Dexie agrega la tabla sin borrar datos existentes; exportación incluirá auditorías y podrá importar archivos previos sin auditorías como lista vacía.
Risks / Trade-offs
- [CSV ambiguo] Separador o codificación inesperada puede producir columnas incorrectas -> detectar separador, normalizar BOM y mostrar errores por fila antes de confirmar.
- [Edición de ventas] Puede alterar stock y reportes históricos -> registrar snapshots y movimientos compensatorios en transacción.
- [Historial atrás] Puede salir de la app si no existe historial -> fallback explícito a Inicio.
- [Datos grandes] Auditar snapshots incrementa almacenamiento local -> aceptar el costo por trazabilidad de la POC y exportarlo junto con los datos.
Migration Plan
- Migrar Dexie agregando
auditorias. - Mantener importación de exportaciones antiguas con auditorías vacías.
- Validar navegación, importación y edición en web; después ejecutar build y APK.