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.
This commit is contained in:
39
.kimi/plan.md
Normal file
39
.kimi/plan.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user