Files
Autoparts-DB/.kimi/plan.md
consultoria-as c6b3ca9bdf fix(brand-catalog): add JWT auth token to all API requests
brand-catalog.js was missing Authorization header on fetch calls,
causing 401 Unauthorized errors. Now reads pos_token from localStorage
and includes Bearer token in every request. Also handles 401 responses
by redirecting to /pos/login. Bump JS cache bust to v=2.
2026-05-14 21:26:10 +00:00

1.6 KiB

Plan: Catálogo por Marca de Vehículo

Resumen

Reorganizar el catálogo para que la navegación principal sea: Marca de vehículo → Categoría/Sistema → Partes compatibles

Ejemplo: Toyota → Frenos → [balatas Bosch, discos Brembo, pastillas NGK...]

Opción recomendada: Materialized View

No tocamos la tabla masiva vehicle_parts (billones de rows). Creamos una materialized view que agregue por marca + categoría.

Cambios DB (Master)

  1. Crear brand_catalog_parts MV desde vehicle_parts → MYE → models → brands
  2. Agregar índices: (brand_id, category_id), (brand_id, part_id)
  3. Crear función refresh_brand_catalog() para refrescar

Cambios Backend

  1. Nuevos endpoints:
    • GET /catalog/vehicle-brands → lista marcas con conteo de partes
    • GET /catalog/brand-categories?brand_id= → categorías disponibles para esa marca
    • GET /catalog/brand-parts?brand_id=&category_id= → partes compatibles
  2. Modificar catalog_service.py con filtros por marca

Cambios Frontend

  1. Nueva vista inicial: grid de marcas de vehículo (tarjetas con logo/contador)
  2. Click en marca → lista de categorías/sistemas (frenos, motor, suspensión...)
  3. Click en categoría → grid de partes compatibles con esa marca
  4. Filtro opcional: modelo/año/motor para refinar resultados

Datos

  • vehicle_parts ya tiene todo. La MV solo agrega/distinct.
  • Las marcas fabricantes (Bosch, NGK) se muestran como badges en cada parte.

Tiempo estimado

  • DB + Backend: 2-3 horas
  • Frontend: 2-3 horas
  • Testing: 1 hora
  • Total: ~6 horas