From 810ac860c74c7cad539534069dd8a136058030d4 Mon Sep 17 00:00:00 2001 From: enlineawork Date: Mon, 7 Sep 2026 15:15:19 -0300 Subject: [PATCH] =?UTF-8?q?F3.1=20WEB:=20cliente=20para=20conciliaci=C3=B3?= =?UTF-8?q?n=20del=20cat=C3=A1logo=20de=20Hallazgos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web-v2/src/lib/findingCatalogMerge.ts | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 web-v2/src/lib/findingCatalogMerge.ts diff --git a/web-v2/src/lib/findingCatalogMerge.ts b/web-v2/src/lib/findingCatalogMerge.ts new file mode 100644 index 0000000..28997b1 --- /dev/null +++ b/web-v2/src/lib/findingCatalogMerge.ts @@ -0,0 +1,62 @@ +import { apiRequest } from './api'; + +export interface FindingCatalogMergeItem { + id: string; + categoryId: string; + categoryCode: string; + categoryName: string; + code: string; + sourceNumber: number; + title: string; + legalBasis: string | null; + glossary: string | null; + importNote: string | null; + suggestedSeverity: number | null; + revision: number; + isActive: boolean; +} + +export interface FindingCatalogMergeAlias { + id: string; + code: string; + title: string; + reason: string; + mergedAt: string; + depth: number; +} + +export interface FindingCatalogMergeStatus { + requested: FindingCatalogMergeItem; + isMerged: boolean; + canonical: FindingCatalogMergeItem; + aliases: FindingCatalogMergeAlias[]; +} + +export interface FindingCatalogMergeResult { + merge: { + id: string; + sourceItemId: string; + canonicalItemId: string; + reason: string; + mergedAt: string; + mergedBy: string; + requestId: string; + }; + source: FindingCatalogMergeItem; + canonical: FindingCatalogMergeItem; + historyPolicy: 'EMITTED_FINDINGS_PRESERVED'; +} + +export function getFindingCatalogMergeStatus(itemId: string) { + return apiRequest(`/finding-catalog/items/${itemId}/merge-status`); +} + +export function mergeFindingCatalogItem( + sourceItemId: string, + input: { canonicalItemId: string; reason: string }, +) { + return apiRequest(`/finding-catalog/items/${sourceItemId}/merge`, { + method: 'POST', + body: JSON.stringify(input), + }); +}