From 4a115db8854d90654ddfab1456edaf753826af42 Mon Sep 17 00:00:00 2001 From: Semih Yesilyurt Date: Thu, 4 Jun 2026 16:58:03 +0300 Subject: [PATCH] fix(pl24): wire Fiat as P5-modern /p5fiat (was dead LEGACY_FIAT /fca) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fiat (fiatp_parts/fiatt_parts) was misconfigured as LEGACY_FIAT basePath /fca, which 404s on every request — PL24 Fiat decode was dead. Live discovery (de-708171) shows Fiat is a standard P5 Modern catalog at /p5fiat: directAccess + maingroups/subgroups/parts/images all match the existing P5 flow. Only the vinfoBasic record shape differs ({key,description} vs {values:{description,value}}). - types: fiatp_parts/fiatt_parts -> P5_MODERN, apiPath/basePath /p5fiat - parseVehicleResponse: parse the p5fiat vinfoBasic shape; friendly model from "Model bilgisi"; year from MY / production date Covers European (ZFA) Fiats + some commercial Tofas (fiatt). Turkish Tofas passenger VINs (NM4, incl. Egea) are not in this catalog. de account separation (resolveAccount Rule 1) unchanged; de auth handshake proxied, catalog data not. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../api/src/integrations/pl24/pl24.service.ts | 46 ++++++++++++++++--- apps/api/src/integrations/pl24/pl24.types.ts | 19 ++++---- 2 files changed, 51 insertions(+), 14 deletions(-) diff --git a/apps/api/src/integrations/pl24/pl24.service.ts b/apps/api/src/integrations/pl24/pl24.service.ts index fe69449..ead0847 100644 --- a/apps/api/src/integrations/pl24/pl24.service.ts +++ b/apps/api/src/integrations/pl24/pl24.service.ts @@ -997,16 +997,36 @@ export class PL24Service { serviceName: string, ): Omit { const segments = - (data.segments as Record }> }>) || - {}; + (data.segments as Record< + string, + { + records?: Array<{ + values?: Record; + key?: string; + description?: string; + code?: string; + }>; + } + >) || {}; const vinfoRecords = segments.vinfoBasic?.records || []; const vehicleData: Record = {}; for (const record of vinfoRecords) { + // Two record shapes across P5 backends: + // p5vwag etc.: { values: { description: