import Conexion from './Conexion.js'; import Tutor from '../Model/Tutor.js'; import logger from '../utils/logger.js'; import DAORegistro from './DAORegistro.js'; class DAOTutor { static async agregarTutor(tutor) { const conexion = new Conexion(); const conexionEstablecida = await conexion.conectar(); try { const sql = `INSERT INTO tutor (nombre,apellido,numeroDeTelefono,idUsuario) VALUES (?,?,?,?);`; const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]); if (result.affectedRows > 0) { // Registrar la operación await DAORegistro.registrar({ getMatricula: () => tutor.idUsuario }, 'Agregó tutor', new Date().toISOString()); } return result.affectedRows > 0; } catch (error) { logger.error(`Error al agregar tutor: ${error.message}`); return false; } finally { conexion.cerrarConexion(); } } static async editarTutor(tutor) { const conexion = new Conexion(); const conexionEstablecida = await conexion.conectar(); try { const sql = `UPDATE tutor SET nombre = ?, apellido = ?, numeroDeTelefono = ? WHERE idUsuario = ?`; const [result] = await conexionEstablecida.query(sql, [tutor.nombre, tutor.apellido, tutor.numeroDeTelefono, tutor.idUsuario]); if (result.affectedRows > 0) { await DAORegistro.registrar({ getMatricula: () => tutor.idUsuario }, 'Editó tutor', new Date().toISOString()); } return result.affectedRows > 0; } catch (error) { logger.error(`Error al editar tutor: ${error.message}`); return false; } finally { conexion.cerrarConexion(); } } static async traerTutor(id) { const conexion = new Conexion(); const conexionEstablecida = await conexion.conectar(); try { const sql = `SELECT id, nombre, apellido, numeroDeTelefono, idUsuario FROM tutor WHERE idUsuario = ?`; const [rows] = await conexionEstablecida.query(sql, [id]); if (rows.length > 0) { const row = rows[0]; const tutor = new Tutor(row.id, row.nombre, row.apellido, row.numeroDeTelefono, row.idUsuario); return tutor; } return null; } catch (error) { logger.error(`Error al traer tutor: ${error.message}`); return null; } finally { conexion.cerrarConexion(); } } } export default DAOTutor;