edumanagerpro2/manager/scratch/test_reverse_sync_turmas.js

60 lines
1.6 KiB
JavaScript

import pg from 'pg';
const DATABASE_URL = 'postgresql://edumanager:EduManager2026!Seguro@150.230.87.131:5432/edumanager';
const pool = new pg.Pool({ connectionString: DATABASE_URL });
const formatDateForJSON = (val) => {
if (!val) return '';
if (val instanceof Date) {
return val.toISOString().substring(0, 10);
}
if (typeof val === 'string') {
return val.substring(0, 10);
}
return '';
};
async function testSync() {
try {
console.log('--- TESTING REVERSE SYNC FOR TURMAS ---');
// Fetch from Postgres
const { rows: dbTurmas } = await pool.query('SELECT * FROM turmas ORDER BY nome ASC');
console.log(`Found ${dbTurmas.length} classes in SQL.`);
// Fetch school data
const { rows: sdRows } = await pool.query('SELECT data FROM school_data WHERE id = 1');
const appData = sdRows[0].data;
// Map
appData.classes = dbTurmas.map((t) => ({
id: t.id,
name: t.nome,
courseId: t.curso_id,
teacher: t.professor,
schedule: t.horario,
scheduleDay: t.dia_semana,
maxStudents: Number(t.max_alunos || 0),
startDate: formatDateForJSON(t.data_inicio),
endDate: formatDateForJSON(t.data_fim),
defaultStartTime: t.horario_inicio_padrao,
defaultEndTime: t.horario_fim_padrao
}));
appData.lastUpdated = new Date().toISOString();
// Save
await pool.query(
'UPDATE school_data SET data = $1, updated_at = NOW() WHERE id = 1',
[JSON.stringify(appData)]
);
console.log('--- REVERSE SYNC SUCCESSFUL ---');
} catch (err) {
console.error('ERROR:', err.message);
} finally {
await pool.end();
}
}
testSync();