# Plan de Implementacion - Tienda AI Local

## Estado global
- [x] Fase 0: Fundaciones del proyecto
- [x] Fase 1: Pipeline OCR real base (PaddleOCR + Tesseract fallback)
- [x] Fase 2: Extraccion IA robusta base (Qwen3/Llama3 + validacion/normalizacion JSON)
- [x] Fase 3: Aprendizaje incremental base y clasificacion automatica inicial
- [x] Fase 4: Importacion bancaria y conciliacion base (CSV + matching inicial)
- [x] Fase 5: Integracion TPV Agora (base — CSV, API local, cierres caja, cuadre banco)
- [ ] Fase 6: Dashboard ejecutivo e informes PDF/Excel
- [ ] Fase 7: Portal gestoria y endurecimiento de seguridad

## Fase 0 entregada
- Laravel 12 inicializado en Windows con PHP 8.2.
- Sanctum instalado y configurado para API local.
- Roles y permisos base con Spatie.
- Arquitectura inicial por capas:
  - `app/Domain`
  - `app/Application`
  - `app/Infrastructure`
- Modelo de datos base para documentos, pagos, bancos, conciliacion e integraciones.
- Pipeline asíncrono inicial con `Jobs` y evento `DocumentProcessed`.
- Inbox documental en Blade + Bootstrap con drag and drop.
- Endpoints API iniciales para upload y KPIs.

## Fase 1 entregada
- Servicio Python OCR en `scripts/ocr/ocr_service.py`.
- PaddleOCR como motor principal y Tesseract como respaldo automatico.
- Soporte de entrada PDF, imagenes y HEIC (via `pillow-heif`).
- Integracion Laravel en `LocalOcrService` con configuracion por `.env`.
- Persistencia de metadatos OCR (`documents.ocr_meta`) y confidence score.
- Comando de diagnostico: `php artisan app:ocr-health-check --input="ruta"`.
- Script de instalacion Windows OCR: `scripts/windows/install-ocr.ps1`.

## Fase 2 entregada (base robusta)
- Reintentos, timeout y connect-timeout configurables para Ollama.
- Fallback automatico de modelo (Qwen3 -> Llama3) cuando falla parsing o red.
- Normalizacion estricta de payload IA a estructura JSON consistente.
- Manejo de error en job IA con estado `ai_failed` y trazabilidad en `ai_json`.
- Comando de conectividad IA: `php artisan app:ollama-health-check`.
- Documentacion de arquitectura con Ollama remoto en LAN.

## Fase 3 entregada (base funcional)
- Job `ClassifyDocumentJob` agregado al pipeline asincrono.
- Resolucion automatica de proveedor con alias/sinonimos (`ProviderResolverService`).
- Clasificacion de categoria por reglas, keywords y historico (`CategoryClassifierService`).
- Endpoint para correcciones manuales que alimentan aprendizaje:
  - `PATCH /api/documents/{document}/corrections`
- Registro de correcciones en `field_corrections`.
- Creacion/actualizacion de reglas aprendidas en `classification_rules`.
- Seeder de categorias contables iniciales (`CategoriesSeeder`).
- UI de revision documental con formulario de correcciones conectado a aprendizaje.
- Autenticacion web (login/logout) y proteccion de rutas por `auth`.
- Panel admin de usuarios con asignacion de roles.
- Panel admin de roles/permisos con auditoria de cambios.

## Fase 4 entregada (base funcional)
- Importador CSV bancario con perfiles: generico, Sabadell, CaixaBank, Santander.
- Deduplicacion de movimientos por hash de cuenta/fecha/concepto/importe.
- Pantalla de movimientos bancarios con carga de extractos.
- Motor de conciliacion base con score por importe/fecha/proveedor.
- Estados: `matched`, `suggested`, `unmatched`, `confirmed`, `rejected`.
- Pantalla de revision manual para confirmar o rechazar sugerencias.
- Creacion automatica de `payments` y actualizacion de `payment_status=paid`.
- Permisos por rol: `bank.import` y `reconciliation.run`.

## Fase 5 entregada (base funcional)
- Importador CSV Ágora con perfiles: ventas, diario albaranes, genérico.
- Cliente HTTP configurable para Módulo Servicios de Integración (API local).
- Sincronización por carpeta `AGORA_EXPORT_FOLDER` y job programado.
- Modelos `TpvSale`, `IntegrationSource`, `IntegrationRun` operativos.
- Generación automática de cierres de caja diarios por forma de pago.
- Cuadre TPV vs banco por día y canal (tarjeta/efectivo/Bizum).
- Pantalla `/tpv/sales`, permiso `tpv.sync`, comandos `app:agora-health-check` y `app:agora-sync`.
- Documentación: `docs/AGORA_TPV_SETUP.md`.

## Proxima iteracion
1. Ampliar importadores bancarios a XLSX/OFX/QIF.
2. Conciliar tickets TPV individuales con facturas simplificadas y albaranes.
3. Implementar modulo de albaranes pendientes y deteccion de diferencias.
4. Informes PDF/Excel y portal gestoria.
