From 0d90e3d5aec4a986e71d805dff832c9c3643d173 Mon Sep 17 00:00:00 2001 From: admtracksteel Date: Tue, 23 Jun 2026 16:55:39 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20show=20nonComplianceReason=20detail=20b?= =?UTF-8?q?anner=20under=20identification=20section=20when=20report=20is?= =?UTF-8?q?=20N=C3=83O=20CONFORME?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ReportDisplay.tsx | 13 +++++++++++++ services/aiService.ts | 2 ++ types.ts | 1 + 3 files changed, 16 insertions(+) diff --git a/components/ReportDisplay.tsx b/components/ReportDisplay.tsx index d915624..84305ce 100644 --- a/components/ReportDisplay.tsx +++ b/components/ReportDisplay.tsx @@ -114,6 +114,19 @@ export const ReportDisplay: React.FC = ({ report }) => { + {/* Banner de Não Conformidade se aplicável */} + {compliance.status === 'NÃO CONFORME' && compliance.nonComplianceReason && ( +
+ + + +
+

Motivo da Não Conformidade Normativa

+

{compliance.nonComplianceReason}

+
+
+ )} + {/* Seções 2 e 3: Propriedades (Lado a Lado no Desktop) */}
diff --git a/services/aiService.ts b/services/aiService.ts index d676d19..670a6a0 100644 --- a/services/aiService.ts +++ b/services/aiService.ts @@ -75,6 +75,7 @@ const reportSchema = { type: Type.OBJECT, properties: { status: { type: Type.STRING, enum: ["CONFORME", "NÃO CONFORME"], description: "Status geral de conformidade." }, + nonComplianceReason: { type: Type.STRING, description: "Se o status for 'NÃO CONFORME', explique detalhadamente o motivo da não conformidade, citando quais propriedades ou elementos químicos falharam e quais eram os limites da norma técnica analisada. Se for 'CONFORME', retorne uma string vazia." }, mechanical: { type: Type.ARRAY, items: { @@ -196,6 +197,7 @@ FORMATO DO RETORNO: }, "compliance": { "status": "CONFORME", + "nonComplianceReason": "", "mechanical": [ { "property": "Yield Strength (Limite de Escoamento)", "norm": "Min: 345 MPa", "certificate": "415 MPa", "status": "OK", "differencePercentage": "+20.3%" } ], diff --git a/types.ts b/types.ts index 3d91e2a..6b80ad9 100644 --- a/types.ts +++ b/types.ts @@ -22,6 +22,7 @@ export interface ComplianceItem { export interface ComplianceData { status: 'CONFORME' | 'NÃO CONFORME'; + nonComplianceReason?: string; mechanical: ComplianceItem[]; chemical: ComplianceItem[]; otherTests: ComplianceItem[];