diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e8700f..7d516ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -270,3 +270,10 @@ e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/). - Removidos limites `minimum` e `maximum` dos campos numéricos - Removida restrição `minItems` dos arrays de pontos fortes e melhorias - Simplificada a validação para maior flexibilidade na Edge Function + +### Técnico +- Corrigida consulta de análise de redações no componente `EssayAnalysis`: + - Adicionado join com tabelas relacionadas (feedback, strengths, improvements, scores) + - Implementada transformação dos dados para o formato esperado + - Adicionado tratamento para valores nulos + - Melhorada tipagem dos dados retornados diff --git a/src/pages/student-dashboard/essays/EssayAnalysis.tsx b/src/pages/student-dashboard/essays/EssayAnalysis.tsx index 4f69d01..8641b64 100644 --- a/src/pages/student-dashboard/essays/EssayAnalysis.tsx +++ b/src/pages/student-dashboard/essays/EssayAnalysis.tsx @@ -72,14 +72,50 @@ export function EssayAnalysis() { // Carregar análise const { data: analysisData, error: analysisError } = await supabase .from('essay_analyses') - .select('*') + .select(` + *, + feedback:essay_analysis_feedback( + structure_feedback, + content_feedback, + language_feedback + ), + strengths:essay_analysis_strengths(strength), + improvements:essay_analysis_improvements(improvement), + scores:essay_analysis_scores( + adequacy, + coherence, + cohesion, + vocabulary, + grammar + ) + `) .eq('essay_id', id) .order('created_at', { ascending: false }) .limit(1) .single(); if (analysisError) throw analysisError; - setAnalysis(analysisData); + + // Transformar os dados para o formato esperado + const formattedAnalysis = { + ...analysisData, + feedback: { + structure: analysisData.feedback[0]?.structure_feedback || '', + content: analysisData.feedback[0]?.content_feedback || '', + language: analysisData.feedback[0]?.language_feedback || '' + }, + strengths: analysisData.strengths?.map(s => s.strength) || [], + improvements: analysisData.improvements?.map(i => i.improvement) || [], + criteria_scores: { + adequacy: analysisData.scores[0]?.adequacy || 0, + coherence: analysisData.scores[0]?.coherence || 0, + cohesion: analysisData.scores[0]?.cohesion || 0, + vocabulary: analysisData.scores[0]?.vocabulary || 0, + grammar: analysisData.scores[0]?.grammar || 0 + } + }; + + setAnalysis(formattedAnalysis); } catch (error) { console.error('Erro ao carregar dados:', error); } finally {