# 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