From c715029dbcd9c8f25166b8ee1bfbea047e26a53d Mon Sep 17 00:00:00 2001 From: enlineawork Date: Mon, 7 Sep 2026 22:47:43 -0300 Subject: [PATCH] F4: add report list contracts to web client --- web-v2/src/lib/reportWorkflowApi.ts | 61 +++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/web-v2/src/lib/reportWorkflowApi.ts b/web-v2/src/lib/reportWorkflowApi.ts index 03942f4..db1d3a6 100644 --- a/web-v2/src/lib/reportWorkflowApi.ts +++ b/web-v2/src/lib/reportWorkflowApi.ts @@ -8,6 +8,25 @@ export type InspectionReportFollowUpType = | 'VERIFICATION' | 'OTHER'; +export interface PageMetaF4 { + page: number; + pageSize: number; + total: number; + totalPages: number; +} + +export interface InspectionReportQueryF4 { + page?: number; + pageSize?: number; + search?: string; + year?: number | string; + companyId?: string; + areaId?: string; + inspectorId?: string; + dateFrom?: string; + dateTo?: string; +} + export interface InspectionReportDetailF4 { id: string; visitId: string; @@ -47,6 +66,22 @@ export interface InspectionReportDetailF4 { findingCount: number; } +export interface PendingInspectionReportF4 { + actId: string; + visitId: string; + actCode: string; + actTitle: string; + actYear: number; + occurredAt: string; + sealedAt: string; + closureSha256: string; + visitCode: string; + visitTitle: string; + companies: Array<{ id: string; code: string; name: string }>; + areas: Array<{ id: string; code: string; name: string }>; + findingCount: number; +} + export interface InspectionReportFollowUp { id: string; reportId: string; @@ -84,6 +119,32 @@ export interface InspectionReportWorkflowView { followUps: InspectionReportFollowUp[]; } +function queryString(query: InspectionReportQueryF4): string { + const params = new URLSearchParams(); + const add = (key: string, value: string | number | undefined) => { + if (value === undefined || value === '') return; + params.set(key, String(value)); + }; + add('page', query.page ?? 1); + add('pageSize', query.pageSize ?? 25); + add('search', query.search?.trim() || undefined); + add('year', query.year); + add('companyId', query.companyId); + add('areaId', query.areaId); + add('inspectorId', query.inspectorId); + add('dateFrom', query.dateFrom); + add('dateTo', query.dateTo); + return params.toString(); +} + +export function listInspectionReportsF4(query: InspectionReportQueryF4) { + return apiRequest<{ data: InspectionReportDetailF4[]; meta: PageMetaF4 }>(`/inspection-reports?${queryString(query)}`); +} + +export function listPendingInspectionReportsF4(query: InspectionReportQueryF4) { + return apiRequest<{ data: PendingInspectionReportF4[]; meta: PageMetaF4 }>(`/inspection-reports/pending?${queryString(query)}`); +} + export function getInspectionReportF4(id: string) { return apiRequest(`/inspection-reports/${id}`); }