- Fixed proxySchemaImage to detect Opel catalogs and use downloadOpelSchemaImage
- Opel requires a server-generated 'signature' parameter for image tickets
- Extract signed ticket URL from parts page HTML (imageViewerParamsUrl)
- Use extracted signature to get valid image ticket from PL24
- Schema images now return actual PNG instead of HTML
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## PL24 Improvements
- Add JLR (Jaguar/Land Rover) 3-step parts flow (vin_illus → vin_bomdetails)
- Enhance Ford parser with comprehensive category/subcategory handling
- Extend Hyundai-Kia parser with improved part extraction and hotspot support
- Add dedicated Kia parser for brand-specific parsing
- Add Kia scraper service for specialized scraping
- Improve legacy scraper with better error handling
## New Features
- Add Corgi API integration (corgi.service.ts, corgi.types.ts)
- Add NHTSA WMI fetch script for VIN decoding
- Add 90+ new schema images for parts visualization
## Bug Fixes & Improvements
- Update VIN decoder service with better brand detection
- Improve vehicles service with enhanced data handling
- Update parser factory with Kia support
## Assets
- Add new schema images for multiple vehicle brands
- Update UI screenshots (categories, parts, vehicles pages)
- Add debug hotspots utility for development
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Removed pagination from getCategoryPartsByVin API endpoint
- API now returns all parts for a category (not just first 50)
- Frontend filters by subGroupId correctly with full dataset
- Removed debug console.log statements from frontend
Previously, only 2 parts would show when selecting a subgroup that had 67 parts
because the API was returning paginated results and the user's subgroup parts
weren't in the first page.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Changes
### Backend (vehicles.service.ts)
- Download ALL subgroup schema images on-demand (not just first)
- Store per-subgroup schemaWidth, schemaHeight, and hotspots in DB
- Return per-subgroup hotspot data in API response
### Frontend ([categoryId]/page.tsx)
- Add useMemo hooks for selectedSubGroupData, schemaImageUrl, hotspots
- Hotspots now properly update when subgroup changes
- Schema image changes correctly with subgroup selection
- Reset imageSize state on subgroup change for hotspot recalculation
### PL24 Integration
- Add pl24-db.service.ts for database operations
- Improve schema image downloading and caching
## Bug Fixed
When switching between subgroups (tabs) on the category parts page,
the schema image was changing but hotspots remained fixed on the
first subgroup's values. Now both image and hotspots update correctly.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Major Changes
### PL24 Integration (PartsLink24 API)
- Add PL24 auth service with JWT token management
- Add PL24 service for VIN decode and parts catalog
- Support for VAG, Mercedes, BMW, Ford, Renault and more
- Schema image download with base64 decoding
- Image deduplication via SchemaPic table
### EMEX On-Demand Loading
- Remove automatic parts scraping during VIN decode
- Add fetchCategoryParts() for on-demand loading
- Store category URLs in rawResponse for later fetching
- Fix Chrome executable path for Puppeteer
### VIN Decode Flow
- PL24 first, fallback to EMEX if not available
- Both sources now use on-demand parts loading
- Faster VIN lookup (no parts scraped upfront)
### Database Schema
- Add SchemaPic model for image deduplication
- Add schemaPicId to VehicleCategory
- Add EMEX models for parallel scraping
### Frontend Improvements
- Dark theme with Tailwind CSS
- Improved UI components (card, button, input)
- Better category and parts display
- Schema image viewer
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>