feat(api): add newer Peugeot/Citroën/DS/Opel WMIs (VR1/VR3/VR7/W0V)

Prod decode failures clustered on French/Stellantis VINs that no source even
tried: the post-merger WMIs VR3/VR7 (Peugeot), VR1 (Citroën/DS) and W0V (Opel)
were missing from every map, so getServiceName/isSupported returned null and the
VIN was rejected as "Marka desteklenmiyor" before any scrape ran.

Add them to all three maps, matching the existing VF3/VF7/W0L routing:
- Corgi WMI_DATABASE (display brand)
- PL24_WMI_SERVICE_MAP (peugeot_parts / citroen_parts / opel_parts)
- EMEX CATALOG_MAP (PSA -> PEUGEOT00, Opel -> GM_OP201809)

Lets EMEX scrape and PL24 fall back for these mass-market TR brands instead of
hard-failing at the routing step. Phase 4 of 4 on decode reliability.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-25 00:13:43 +03:00
parent 9b13c4a21f
commit 8e9439450b
3 changed files with 13 additions and 0 deletions

View File

@@ -42,8 +42,11 @@ const WMI_DATABASE: Record<string, string> = {
VF2: "Renault",
// Peugeot
VF3: "Peugeot",
VR3: "Peugeot", // newer Stellantis-era WMI
VR7: "Peugeot", // newer Stellantis-era WMI
// Citroen
VF7: "Citroen",
VR1: "Citroen", // newer Citroën/DS WMI
// Honda
JHM: "Honda",
SHH: "Honda",
@@ -61,6 +64,7 @@ const WMI_DATABASE: Record<string, string> = {
"3FA": "Ford",
// Opel
W0L: "Opel",
W0V: "Opel", // newer Stellantis-era WMI
// Skoda
TMB: "Skoda",
// Seat

View File

@@ -256,6 +256,10 @@ export const CATALOG_MAP: Record<string, CatalogEntry> = {
VF3: { code: "PEUGEOT00", brand: "Peugeot" },
// Citroen/Peugeot (VF7 shared — Peugeot more common)
VF7: { code: "PEUGEOT00", brand: "Peugeot" },
// Newer PSA/Stellantis WMIs (Peugeot/Citroën/DS) — same EMEX catalog as VF3/VF7
VR1: { code: "PEUGEOT00", brand: "Peugeot" },
VR3: { code: "PEUGEOT00", brand: "Peugeot" },
VR7: { code: "PEUGEOT00", brand: "Peugeot" },
// Fiat
ZFA: { code: "FFIAT84", brand: "Fiat" },
// Alfa Romeo
@@ -320,6 +324,7 @@ export const CATALOG_MAP: Record<string, CatalogEntry> = {
JAA: { code: "ISUZU201702", brand: "Isuzu" },
// Opel
W0L: { code: "GM_OP201809", brand: "Opel" },
W0V: { code: "GM_OP201809", brand: "Opel" }, // newer Stellantis-era WMI
// Chevrolet
KL1: { code: "GM_C201809", brand: "Chevrolet" },
// SsangYong

View File

@@ -552,12 +552,16 @@ export const PL24_WMI_SERVICE_MAP: Record<string, string> = {
// Opel / Vauxhall
W0L: "opel_parts", // Opel AG (Germany)
W0V: "opel_parts", // Opel (newer Stellantis-era WMI)
// Citroën (PSA)
VF7: "citroen_parts", // Citroën SA (France)
VR1: "citroen_parts", // Citroën/DS (newer WMI)
// Peugeot (PSA)
VF3: "peugeot_parts", // Peugeot SA (France)
VR3: "peugeot_parts", // Peugeot (newer WMI)
VR7: "peugeot_parts", // Peugeot (newer WMI)
// Volvo
YV1: "volvo_parts", // Volvo Cars (Sweden)