F3.1 WEB: agregar cliente de Inventario estructural
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
import { apiRequest } from './api';
|
||||
|
||||
export type InventoryStructureKind = 'AREA' | 'YACIMIENTO' | 'INSTALACION' | 'SUBINSTALACION';
|
||||
|
||||
export interface InventoryFamily {
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
level: 'INSTALLATION' | 'SUBINSTALLATION';
|
||||
legacyTypeCode: string | null;
|
||||
informationLabels: string[];
|
||||
parentFamilyId: string | null;
|
||||
parentFamilyCode: string | null;
|
||||
parentFamilyName: string | null;
|
||||
}
|
||||
|
||||
export interface InventoryStructureLevel {
|
||||
kind: InventoryStructureKind;
|
||||
label: string;
|
||||
type: { id: string; code: string; name: string };
|
||||
parentKind: InventoryStructureKind | null;
|
||||
requiresFamily: boolean;
|
||||
}
|
||||
|
||||
export interface InventoryStructureOptions {
|
||||
levels: InventoryStructureLevel[];
|
||||
installationFamilies: InventoryFamily[];
|
||||
subinstallationFamilies: InventoryFamily[];
|
||||
}
|
||||
|
||||
export interface InventoryStructureParent {
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
commonName: string | null;
|
||||
type: { id: string; code: string; name: string };
|
||||
inventoryFamily: null | {
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
level: 'INSTALLATION' | 'SUBINSTALLATION';
|
||||
informationLabels: string[];
|
||||
};
|
||||
parent: null | { id: string; code: string; name: string };
|
||||
}
|
||||
|
||||
export interface InventoryFamilyFinding {
|
||||
id: string;
|
||||
code: string;
|
||||
sourceNumber: number;
|
||||
title: string;
|
||||
legalBasis: string | null;
|
||||
glossary: string | null;
|
||||
suggestedSeverity: number | null;
|
||||
categoryId: string;
|
||||
categoryCode: string;
|
||||
categoryName: string;
|
||||
}
|
||||
|
||||
export interface InventoryFamilyFindings {
|
||||
family: {
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
level: string;
|
||||
informationLabels: string[];
|
||||
};
|
||||
items: InventoryFamilyFinding[];
|
||||
count: number;
|
||||
}
|
||||
|
||||
export interface CreatedInventoryStructure {
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
commonName: string | null;
|
||||
description: string | null;
|
||||
informationStatus: string;
|
||||
operationalStatus: string;
|
||||
type: { id: string; code: string; name: string };
|
||||
parent: null | { id: string; code: string; name: string };
|
||||
inventoryFamily: null | {
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
level: string;
|
||||
informationLabels: string[];
|
||||
};
|
||||
}
|
||||
|
||||
export function getInventoryStructureOptions() {
|
||||
return apiRequest<InventoryStructureOptions>('/inventory-structure');
|
||||
}
|
||||
|
||||
export async function listInventoryStructureParents(kind: InventoryStructureKind, search = '') {
|
||||
const query = new URLSearchParams();
|
||||
if (search.trim()) query.set('search', search.trim());
|
||||
const suffix = query.size ? `?${query}` : '';
|
||||
return (await apiRequest<{ data: InventoryStructureParent[] }>(
|
||||
`/inventory-structure/parents/${kind}${suffix}`,
|
||||
)).data;
|
||||
}
|
||||
|
||||
export function getInventoryFamilyFindings(familyId: string) {
|
||||
return apiRequest<InventoryFamilyFindings>(`/inventory-families/${familyId}/findings`);
|
||||
}
|
||||
|
||||
export function createInventoryStructure(input: {
|
||||
kind: InventoryStructureKind;
|
||||
code?: string | null;
|
||||
name: string;
|
||||
commonName?: string | null;
|
||||
parentId?: string | null;
|
||||
familyId?: string | null;
|
||||
description?: string | null;
|
||||
}) {
|
||||
return apiRequest<CreatedInventoryStructure>('/inventory-structure', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(input),
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user