diff --git a/src/pages/student-dashboard/StudentDashboardPage.tsx b/src/pages/student-dashboard/StudentDashboardPage.tsx index 3ac787d..c40a245 100644 --- a/src/pages/student-dashboard/StudentDashboardPage.tsx +++ b/src/pages/student-dashboard/StudentDashboardPage.tsx @@ -346,46 +346,50 @@ export function StudentDashboardPage() { ) `) .eq('student_id', session.user.id) - .eq('status', 'completed'); + .eq('status', 'analyzed') + .order('created_at', { ascending: true }); if (essaysError) throw essaysError; + console.log('Redações carregadas:', essays); + // Processar métricas semanais de escrita const analyses = essays?.flatMap(essay => - essay.essay_analyses?.map(analysis => ({ - id: analysis.id, - created_at: analysis.created_at, - overall_score: analysis.overall_score, - essay_id: essay.id, - scores: analysis.essay_analysis_scores?.[0] || { - adequacy: 0, - coherence: 0, - cohesion: 0, - vocabulary: 0, - grammar: 0 - }, - feedback: analysis.essay_analysis_feedback?.[0] || { - structure_feedback: '', - content_feedback: '', - language_feedback: '' - } - })) + essay.essay_analyses?.map(analysis => { + console.log('Análise individual:', analysis); + return { + id: analysis.id, + created_at: analysis.created_at, + overall_score: analysis.overall_score || 0, + essay_id: essay.id, + scores: { + adequacy: analysis.essay_analysis_scores?.[0]?.adequacy || 0, + coherence: analysis.essay_analysis_scores?.[0]?.coherence || 0, + cohesion: analysis.essay_analysis_scores?.[0]?.cohesion || 0, + vocabulary: analysis.essay_analysis_scores?.[0]?.vocabulary || 0, + grammar: analysis.essay_analysis_scores?.[0]?.grammar || 0 + }, + feedback: { + structure_feedback: analysis.essay_analysis_feedback?.[0]?.structure_feedback || '', + content_feedback: analysis.essay_analysis_feedback?.[0]?.content_feedback || '', + language_feedback: analysis.essay_analysis_feedback?.[0]?.language_feedback || '' + } + }; + }) ).filter(Boolean) || []; - const weeklyWritingData = processWeeklyWritingMetrics(analyses); - // Atualizar métricas semanais de escrita - updateWeeklyWritingMetrics(weeklyWritingData); + console.log('Análises processadas:', analyses); // Calcular métricas gerais de escrita if (analyses && analyses.length > 0) { const totalAnalyses = analyses.length; const metricsSum = analyses.reduce((acc, analysis) => ({ - score: acc.score + analysis.overall_score, - adequacy: acc.adequacy + analysis.scores.adequacy, - coherence: acc.coherence + analysis.scores.coherence, - cohesion: acc.cohesion + analysis.scores.cohesion, - vocabulary: acc.vocabulary + analysis.scores.vocabulary, - grammar: acc.grammar + analysis.scores.grammar + score: acc.score + (analysis.overall_score || 0), + adequacy: acc.adequacy + (analysis.scores?.adequacy || 0), + coherence: acc.coherence + (analysis.scores?.coherence || 0), + cohesion: acc.cohesion + (analysis.scores?.cohesion || 0), + vocabulary: acc.vocabulary + (analysis.scores?.vocabulary || 0), + grammar: acc.grammar + (analysis.scores?.grammar || 0) }), { score: 0, adequacy: 0, @@ -395,8 +399,11 @@ export function StudentDashboardPage() { grammar: 0 }); + console.log('Soma das métricas:', metricsSum); + console.log('Total de análises:', totalAnalyses); + // Atualizar métricas de escrita - updateWritingMetrics({ + const writingMetrics = { totalEssays: essays?.length || 0, averageScore: Math.round(metricsSum.score / totalAnalyses), totalEssaysTime: totalAnalyses * 30, @@ -406,7 +413,29 @@ export function StudentDashboardPage() { averageCohesion: Math.round(metricsSum.cohesion / totalAnalyses), averageVocabulary: Math.round(metricsSum.vocabulary / totalAnalyses), averageGrammar: Math.round(metricsSum.grammar / totalAnalyses) + }; + + console.log('Métricas de escrita calculadas:', writingMetrics); + updateWritingMetrics(writingMetrics); + + const weeklyWritingData = processWeeklyWritingMetrics(analyses); + console.log('Dados semanais de escrita:', weeklyWritingData); + updateWeeklyWritingMetrics(weeklyWritingData); + } else { + console.log('Nenhuma análise encontrada'); + // Definir valores padrão quando não há análises + updateWritingMetrics({ + totalEssays: 0, + averageScore: 0, + totalEssaysTime: 0, + currentWritingLevel: 1, + averageAdequacy: 0, + averageCoherence: 0, + averageCohesion: 0, + averageVocabulary: 0, + averageGrammar: 0 }); + updateWeeklyWritingMetrics([]); } } catch (err) {