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
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 2m15s
Details
This commit is contained in:
parent
de08900fbe
commit
f04dea7e8a
|
|
@ -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';
|
||||||
|
|
|
||||||
|
|
@ -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).
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue