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.
1.6 KiB
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)
- Crear
brand_catalog_partsMV desdevehicle_parts → MYE → models → brands - Agregar índices:
(brand_id, category_id),(brand_id, part_id) - Crear función
refresh_brand_catalog()para refrescar
Cambios Backend
- Nuevos endpoints:
GET /catalog/vehicle-brands→ lista marcas con conteo de partesGET /catalog/brand-categories?brand_id=→ categorías disponibles para esa marcaGET /catalog/brand-parts?brand_id=&category_id=→ partes compatibles
- Modificar
catalog_service.pycon filtros por marca
Cambios Frontend
- Nueva vista inicial: grid de marcas de vehículo (tarjetas con logo/contador)
- Click en marca → lista de categorías/sistemas (frenos, motor, suspensión...)
- Click en categoría → grid de partes compatibles con esa marca
- Filtro opcional: modelo/año/motor para refinar resultados
Datos
vehicle_partsya 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