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

40 lines
1.6 KiB
Markdown

# 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