Files
Autoparts-DB/docs/plans/2026-03-01-captura-partes-design.md
consultoria-as 5e6bf788db docs: add design and implementation plans
- 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>
2026-03-18 22:25:38 +00:00

2.9 KiB

Captura de Partes OEM — Diseño

Resumen

App web de captura de datos para 3 capturistas que trabajan en pipeline:

  1. Capturista OEM — registra partes OEM por vehículo
  2. Capturista Intercambios — agrega aftermarket por pieza OEM
  3. 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

  1. Capturista ve lista de vehículos pendientes (sin partes OEM)
  2. Filtra por marca/modelo, elige un vehículo
  3. Ve tabla con 12 categorías / 63 grupos
  4. Por cada grupo, puede [+ Agregar pieza]: # OEM, nombre, cantidad
  5. Guarda fila por fila (POST /api/admin/parts + POST /api/admin/fitment)
  6. 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

  1. POST /api/admin/parts → crea pieza OEM → obtiene part_id
  2. POST /api/admin/fitment → vincula pieza a vehículo (mye_id + part_id)
  3. Si OEM ya existe en DB, reutilizar part_id existente

Sección 2: Captura Intercambios

Flujo

  1. Ve lista de piezas OEM sin aftermarket
  2. Selecciona una pieza → ve su info OEM
  3. Agrega intercambios: fabricante, # aftermarket, calidad, precio, garantía
  4. POST /api/admin/aftermarket
  5. 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

  1. Ve lista de piezas OEM sin imagen
  2. Selecciona una pieza → ve su info
  3. Sube archivo de imagen (jpg/png/webp)
  4. Se guarda en /static/parts/{oem_number}.{ext}
  5. 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