mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-16 21:37:51 +00:00
fix: corrige consulta de análise de redações - Adiciona join com tabelas relacionadas - Implementa transformação dos dados - Adiciona tratamento para valores nulos
This commit is contained in:
parent
28ac3ef8cc
commit
c94c46f5c1
@ -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
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user