diff --git a/web-v2/src/lib/inventoryStructureApi.ts b/web-v2/src/lib/inventoryStructureApi.ts index 15d2c6a..4610c95 100644 --- a/web-v2/src/lib/inventoryStructureApi.ts +++ b/web-v2/src/lib/inventoryStructureApi.ts @@ -7,11 +7,16 @@ export interface InventoryFamily { code: string; name: string; level: 'INSTALLATION' | 'SUBINSTALLATION'; - legacyTypeCode: string | null; + legacyTypeCode?: string | null; informationLabels: string[]; + sourceReference?: string | null; + isActive?: boolean; parentFamilyId: string | null; parentFamilyCode: string | null; parentFamilyName: string | null; + assetCount?: number; + findingCount?: number; + findingItemIds?: string[]; } export interface InventoryStructureLevel { @@ -107,6 +112,41 @@ export function getInventoryFamilyFindings(familyId: string) { return apiRequest(`/inventory-families/${familyId}/findings`); } +export async function listInventoryFamiliesAdmin() { + return (await apiRequest<{ data: InventoryFamily[] }>('/inventory-families/admin')).data; +} + +export function createInventoryFamily(input: { + level: 'INSTALLATION' | 'SUBINSTALLATION'; + name: string; + parentFamilyId?: string | null; + informationLabels?: string[]; +}) { + return apiRequest('/inventory-families', { + method: 'POST', body: JSON.stringify(input), + }); +} + +export function updateInventoryFamily(familyId: string, input: { + name?: string; + parentFamilyId?: string | null; + informationLabels?: string[]; + isActive?: boolean; +}) { + return apiRequest(`/inventory-families/${familyId}`, { + method: 'PATCH', body: JSON.stringify(input), + }); +} + +export function replaceInventoryFamilyFindings(familyId: string, input: { + itemIds: string[]; + reason: string; +}) { + return apiRequest(`/inventory-families/${familyId}/findings`, { + method: 'PUT', body: JSON.stringify(input), + }); +} + export function createInventoryStructure(input: { kind: InventoryStructureKind; code?: string | null;