42 lines
2.7 KiB
Markdown
42 lines
2.7 KiB
Markdown
# 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()` y `router.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 `auditorias` con 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
|
|
|
|
1. Migrar Dexie agregando `auditorias`.
|
|
2. Mantener importación de exportaciones antiguas con auditorías vacías.
|
|
3. Validar navegación, importación y edición en web; después ejecutar build y APK.
|