- SaaS + aftermarket design spec - SaaS + aftermarket implementation plan (15 tasks) - Captura partes design - POS + cuentas design and plan Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Captura de Partes OEM — Diseño
Resumen
App web de captura de datos para 3 capturistas que trabajan en pipeline:
- Capturista OEM — registra partes OEM por vehículo
- Capturista Intercambios — agrega aftermarket por pieza OEM
- Capturista Imágenes — sube fotos por pieza OEM
Arquitectura
- Frontend: HTML/CSS/JS vanilla (una sola página con 3 tabs)
- Backend: API Flask existente en
server.py(endpoints/api/admin/*) - Base de datos: PostgreSQL
nexus_autoparts - Almacenamiento imágenes:
/home/Autopartes/dashboard/static/parts/
Sección 1: Captura OEM
Flujo
- Capturista ve lista de vehículos pendientes (sin partes OEM)
- Filtra por marca/modelo, elige un vehículo
- Ve tabla con 12 categorías / 63 grupos
- Por cada grupo, puede [+ Agregar pieza]: # OEM, nombre, cantidad
- Guarda fila por fila (POST /api/admin/parts + POST /api/admin/fitment)
- Marca vehículo como "Terminado" → desaparece de pendientes
Estado de vehículo
- Pendiente: 0 partes registradas
- En progreso: tiene partes pero no marcado terminado
- Terminado: marcado explícitamente por capturista
Lógica de guardado
- POST /api/admin/parts → crea pieza OEM → obtiene part_id
- POST /api/admin/fitment → vincula pieza a vehículo (mye_id + part_id)
- Si OEM ya existe en DB, reutilizar part_id existente
Sección 2: Captura Intercambios
Flujo
- Ve lista de piezas OEM sin aftermarket
- Selecciona una pieza → ve su info OEM
- Agrega intercambios: fabricante, # aftermarket, calidad, precio, garantía
- POST /api/admin/aftermarket
- Siguiente pieza
Campos por intercambio
- manufacturer_id (dropdown de fabricantes)
- part_number (texto)
- name (texto)
- quality_tier (economy/standard/oem/premium)
- price_usd (número)
- warranty_months (número)
Sección 3: Captura Imágenes
Flujo
- Ve lista de piezas OEM sin imagen
- Selecciona una pieza → ve su info
- Sube archivo de imagen (jpg/png/webp)
- Se guarda en /static/parts/{oem_number}.{ext}
- Se actualiza campo image_url en tabla parts
Restricciones
- Máximo 2MB por imagen
- Formatos: jpg, png, webp
- Se redimensiona a 800x800 max en el servidor (si es necesario)
Nuevos endpoints necesarios
Estado de vehículos
- GET /api/captura/vehicles/pending — vehículos sin partes
- GET /api/captura/vehicles/in-progress — con partes pero no terminados
- POST /api/captura/vehicles/{mye_id}/complete — marcar terminado
Piezas para intercambios
- GET /api/captura/parts/without-aftermarket — piezas sin intercambio
Piezas para imágenes
- GET /api/captura/parts/without-image — piezas sin foto
- POST /api/captura/parts/{part_id}/image — subir imagen
Archivos
/home/Autopartes/dashboard/captura.html— página principal/home/Autopartes/dashboard/captura.js— lógica de las 3 secciones/home/Autopartes/dashboard/captura.css— estilos específicos- Ruta en server.py:
/captura→ sirve captura.html