F4: add technical findings worklist client

This commit is contained in:
2026-09-07 22:59:24 -03:00
parent 2e5c4c35aa
commit 92cf0dee97
+96
View File
@@ -0,0 +1,96 @@
import { apiRequest } from './api';
export type FindingWorklistWorkflowF4 =
| 'OPEN'
| 'TO_SCHEDULE_VERIFICATION'
| 'TO_VERIFY'
| 'VERIFICATION_OVERDUE'
| 'READY_TO_CLOSE'
| 'CLOSED'
| 'ALL';
export interface FindingWorklistItemF4 {
id: string;
actId: string;
assetId: string;
code: string;
status: 'OPEN' | 'CLOSED' | 'VOIDED';
title: string;
description: string;
severity: number | null;
nextControlOn: string | null;
closedAt: string | null;
closureNotes: string | null;
asset: {
id: string;
code: string;
name: string;
commonName: string | null;
typeName: string;
operatorCompany: { id: string; code: string; name: string } | null;
operationalArea: { id: string; code: string; name: string } | null;
};
document: {
actId: string;
actCode: string;
actStatus: string;
visitId: string;
visitCode: string;
visitStatus: string;
};
verificationVisit: {
id: string;
code: string;
title: string;
status: string;
plannedStartAt: string | null;
} | null;
latestVerification: {
visitId: string;
visitCode: string;
visitStatus: string;
targetControlOn: string | null;
outcome: 'RESOLVED' | 'NOT_RESOLVED' | 'REQUIRES_NEW_DATE' | null;
resultNotes: string | null;
verifiedAt: string | null;
resultRecordedAt: string | null;
rescheduledControlOn: string | null;
evidenceCount: number;
} | null;
createdAt: string;
updatedAt: string;
}
export interface FindingWorklistCountersF4 {
open: number;
withoutControlDate: number;
toVerify: number;
verificationOverdue: number;
verificationNext30Days: number;
readyToClose: number;
closed: number;
}
export interface FindingWorklistPageF4 {
data: FindingWorklistItemF4[];
meta: { page: number; pageSize: number; total: number; totalPages: number };
counters: FindingWorklistCountersF4;
}
export function listFindingWorklistF4(query: {
page?: number;
pageSize?: number;
search?: string;
workflow?: FindingWorklistWorkflowF4;
companyId?: string;
areaId?: string;
inspectorId?: string;
dateFrom?: string;
dateTo?: string;
}) {
const params = new URLSearchParams();
Object.entries(query).forEach(([key, value]) => {
if (value !== undefined && value !== '') params.set(key, String(value));
});
return apiRequest<FindingWorklistPageF4>(`/inspection-findings?${params.toString()}`);
}