/**
* @fileoverview Script que obtiene los momentos activos actuales y los envía al backend.
* @author Mauricio Peña Domínguez
*/
import M_obtenerMomentos from "/InscripcionesEVG/assets/js/models/m_obtenerMomentos.js";
/**
* Controla los momentos activos según la fecha actual y los guarda mediante una petición al backend.
* Separa el momento general y el de torneo olímpico, si están activos.
*
* @async
* @function controlarFecha
* @returns {Promise<void>}
*/
async function controlarFecha() {
try {
const gestorMomentos = new M_obtenerMomentos();
/** @type {Array<Object>} */
const momentos = await gestorMomentos.obtenerMomentos();
const hoy = new Date();
/**
* Filtra los momentos que están activos en la fecha actual.
* @type {Array<Object>}
*/
const momentosActuales = momentos.filter((m) => {
const inicio = new Date(m.fecha_inicio);
const fin = new Date(m.fecha_fin);
return hoy >= inicio && hoy <= fin;
});
/** @type {Object|null} */
let momentoTorneoOlimpico = null;
/** @type {Object|null} */
let momentoActual = null;
console.log(momentosActuales);
// Separa el momento de tipo torneo olímpico (idMomento == 0)
for (const momento of momentosActuales) {
if (momento.idMomento == 0) {
momentoTorneoOlimpico = momento;
} else {
momentoActual = momento;
}
}
console.log("Momento actual:", momentoActual);
console.log("Momento Torneo Olímpico:", momentoTorneoOlimpico);
// Enviar momentos activos al backend
await fetch(
"/InscripcionesEVG/index.php?controlador=controlarFecha&accion=guardarMomentosActivos&j=1",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
momentoActual,
momentoTorneoOlimpico,
}),
},
);
} catch (error) {
console.error("Error al controlar fecha:", error);
}
}
// Ejecutar al cargar la página
controlarFecha();
ontrolarFecha();