fix: adiciona fallback para Gemini 1.5-flash e desabilita sincronizacao destruidora de provas do JSON para o SQL
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m15s Details

This commit is contained in:
Sidney 2026-07-17 20:54:06 -03:00
parent de08900fbe
commit f04dea7e8a
2 changed files with 5 additions and 21 deletions

View File

@ -1280,6 +1280,9 @@ app.post('/api/ai/generate-questions', async (req, res) => {
if (provider === 'gemini') { if (provider === 'gemini') {
apiKey = aiConfig.geminiKey; apiKey = aiConfig.geminiKey;
modelName = aiConfig.geminiModel || 'gemini-1.5-flash'; modelName = aiConfig.geminiModel || 'gemini-1.5-flash';
if (modelName === 'gemini-2.5-flash') {
modelName = 'gemini-1.5-flash';
}
} else if (provider === 'openai') { } else if (provider === 'openai') {
apiKey = aiConfig.openaiKey; apiKey = aiConfig.openaiKey;
modelName = aiConfig.openaiModel || 'gpt-4o-mini'; modelName = aiConfig.openaiModel || 'gpt-4o-mini';

View File

@ -1137,27 +1137,8 @@ export async function syncJsonToRelationalTables() {
} }
// 6. Sincronizar Provas // 6. Sincronizar Provas
if (data.exams && Array.isArray(data.exams)) { // [REMOVIDO] A tabela de provas e questões agora é a Single Source of Truth (SQL-First).
const examIds = data.exams.map(e => e.id).filter(Boolean); // O JSON legado data.exams é ignorado para não sobrescrever nem deletar os registros reais do banco.
if (examIds.length > 0) {
await client.query('DELETE FROM provas WHERE id != ALL($1)', [examIds]);
} else {
await client.query('DELETE FROM provas');
}
for (const e of data.exams) {
if (!e.id || !e.title) continue;
await client.query(
`INSERT INTO provas (id, turma_id, disciplina_id, periodo_id, titulo, duracao_minutos, status, permitir_refacao)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
ON CONFLICT (id) DO UPDATE SET
turma_id = EXCLUDED.turma_id, disciplina_id = EXCLUDED.disciplina_id, periodo_id = EXCLUDED.periodo_id,
titulo = EXCLUDED.titulo, duracao_minutos = EXCLUDED.duracao_minutos, status = EXCLUDED.status,
permitir_refacao = EXCLUDED.permitir_refacao`,
[e.id, e.classId || null, e.subjectId || null, e.periodId || null, e.title, e.durationMinutes || 60, e.status || 'draft', e.allowRetake || false]
).catch(err => console.warn(`[Sync:Provas] Erro na prova ${e.id}:`, err.message));
}
}
// 7. Sincronizar Frequências // 7. Sincronizar Frequências
// [REMOVIDO] A tabela de frequencias agora é a Single Source of Truth (SQL-First). // [REMOVIDO] A tabela de frequencias agora é a Single Source of Truth (SQL-First).