96 lines
2.4 KiB
TypeScript
96 lines
2.4 KiB
TypeScript
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;
|
|
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()}`);
|
|
}
|