From 8e9439450be8f3e0f5cdd50bc90117d84d2055c7 Mon Sep 17 00:00:00 2001 From: Semih Yesilyurt Date: Mon, 25 May 2026 00:13:43 +0300 Subject: [PATCH] =?UTF-8?q?feat(api):=20add=20newer=20Peugeot/Citro=C3=ABn?= =?UTF-8?q?/DS/Opel=20WMIs=20(VR1/VR3/VR7/W0V)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- apps/api/src/integrations/corgi/corgi.service.ts | 4 ++++ apps/api/src/integrations/emex/emex.types.ts | 5 +++++ apps/api/src/integrations/pl24/pl24.types.ts | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/apps/api/src/integrations/corgi/corgi.service.ts b/apps/api/src/integrations/corgi/corgi.service.ts index 7bd3c19..efe8cde 100644 --- a/apps/api/src/integrations/corgi/corgi.service.ts +++ b/apps/api/src/integrations/corgi/corgi.service.ts @@ -42,8 +42,11 @@ const WMI_DATABASE: Record = { 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 = { "3FA": "Ford", // Opel W0L: "Opel", + W0V: "Opel", // newer Stellantis-era WMI // Skoda TMB: "Skoda", // Seat diff --git a/apps/api/src/integrations/emex/emex.types.ts b/apps/api/src/integrations/emex/emex.types.ts index 0fc0b2f..bf00c2b 100644 --- a/apps/api/src/integrations/emex/emex.types.ts +++ b/apps/api/src/integrations/emex/emex.types.ts @@ -256,6 +256,10 @@ export const CATALOG_MAP: Record = { 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 = { 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 diff --git a/apps/api/src/integrations/pl24/pl24.types.ts b/apps/api/src/integrations/pl24/pl24.types.ts index e286c78..d995a13 100644 --- a/apps/api/src/integrations/pl24/pl24.types.ts +++ b/apps/api/src/integrations/pl24/pl24.types.ts @@ -552,12 +552,16 @@ export const PL24_WMI_SERVICE_MAP: Record = { // 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)