F3.1 WEB: cliente para conciliación del catálogo de Hallazgos

This commit is contained in:
2026-09-07 15:15:19 -03:00
parent a4b5bdd3a9
commit 810ac860c7
+62
View File
@@ -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<FindingCatalogMergeStatus>(`/finding-catalog/items/${itemId}/merge-status`);
}
export function mergeFindingCatalogItem(
sourceItemId: string,
input: { canonicalItemId: string; reason: string },
) {
return apiRequest<FindingCatalogMergeResult>(`/finding-catalog/items/${sourceItemId}/merge`, {
method: 'POST',
body: JSON.stringify(input),
});
}