const Usuario = require('../../db/tablas/Usuario'); // Asegúrate de importar correctamente const inscripcion = require('../../db/tablas/Inscripcion'); const enviarCorreoInscripcion = require('../../controller/Profesor/enviarCorreo'); // Ajusta si está en otra ruta const { where } = require('sequelize'); async function realizarInscripcion(req, res) { const { idUsuario, nombre, numeroCuenta, correo } = req.body; try { if (!nombre || !numeroCuenta || !idUsuario) { return res.status(400).json({ message: 'Faltan datos requeridos.' }); } // 1. Buscar si el usuario existe const usuario = await Usuario.findOne({ where: { numeroCuenta } }); if (!usuario) { return res.status(404).json({ message: 'Usuario no encontrado en la base de datos.' }); } // 2. Verificar si ya tiene inscripción const inscripcionExistente = await inscripcion.findOne({ where: { idUsuario: usuario.idUsuario } }); if (inscripcionExistente) { return res.status(200).json({ yaInscrito: true, message: 'El usuario ya está inscrito.', }); } // 3. Crear inscripción await inscripcion.create({ idUsuario: usuario.idUsuario, idArea: 1, // Cambiar si se requiere otro valor validacion: 2, confirmacion: false, folio: null, monto: null, hizoPago: null, rutaTicket: null, extension: null, fechaInscripcion: null, // fechaInscripcion: new Date() fechaTicket: null }); // 4. Realizar confirmacion await inscripcion.update( { confirmacion: true }, { where: { idUsuario: usuario.idUsuario } } ); // 5. Enviar correo await enviarCorreoInscripcion(correo, nombre); // 6. Respuesta final res.status(200).json({ message: 'Inscripción creada y correo enviado correctamente.' }); } catch (error) { console.error('Error en realizarInscripcion:', error); res.status(500).json({ message: 'Error al procesar la inscripción o enviar el correo.' }); } } module.exports = { realizarInscripcion };