const duracionesPorModalidadYTipo = { solo: { técnica: { texto: "2:00", valor: 120 }, libre: { texto: "2:15", valor: 135 } }, duo: { técnica: { texto: "2:20", valor: 140 }, libre: { texto: "2:45", valor: 165 } }, equipo: { técnica: { texto: "2:50", valor: 170 }, libre: { texto: "3:30", valor: 210 } } }; function actualizarDuracionTexto() { const tipo = document.getElementById("tipoCompetencia").value; const modalidad = document.getElementById("modalidad").value; const input = document.getElementById("duration"); if (duracionesPorModalidadYTipo[modalidad] && duracionesPorModalidadYTipo[modalidad][tipo]) { input.value = duracionesPorModalidadYTipo[modalidad][tipo].texto; input.dataset.segundos = duracionesPorModalidadYTipo[modalidad][tipo].valor; } else { input.value = traducciones[langActual].form.durationPlaceholder; input.dataset.segundos = ""; } } document.getElementById("tipoCompetencia").addEventListener("change", actualizarDuracionTexto); document.getElementById("modalidad").addEventListener("change", actualizarDuracionTexto); // Envío del formulario document.getElementById('rutinaForm').addEventListener('submit', async function (e) { e.preventDefault(); const title = document.getElementById('title').value.trim(); const duration = parseInt(document.getElementById('duration').dataset.segundos); const nombreCompetencia = document.getElementById('nombreCompetencia').value.trim(); const tipoCompetencia = document.getElementById('tipoCompetencia').value; const modalidad = document.getElementById('modalidad').value; const musicFile = document.getElementById('music').files[0]; if (!title || isNaN(duration) || !nombreCompetencia || !tipoCompetencia || !modalidad) { alert("Completa todos los campos."); return; } let musicUrl = ""; if (musicFile) { const formData = new FormData(); formData.append('music', musicFile); try { const uploadRes = await fetch('/api/rutinas/upload/music', { method: 'POST', body: formData }); const uploadData = await uploadRes.json(); if (!uploadRes.ok) { throw new Error(uploadData.error || 'Error al subir archivo'); } musicUrl = uploadData.url; } catch (err) { console.error('❌ Error al subir música:', err); alert('Error al subir el archivo de música. Intenta de nuevo.'); return; } } const routine = { title, duration, nombreCompetencia, tipoCompetencia, modalidad, participantes: [], createdBy: "coach-id-ejemplo", musicUrl, elements: [], formaciones: [] }; try { const res = await fetch('/api/rutinas', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(routine) }); const data = await res.json(); if (res.ok) { alert("Rutina guardada correctamente."); window.location.href = "equipoDisponibles.html"; } else { alert("Error al guardar la rutina: " + (data.message || "Error desconocido")); } } catch (err) { console.error(err); alert("Error al guardar la rutina."); } }); function logout() { sessionStorage.clear(); alert("Sesión cerrada"); window.location.href = "../index.html"; } // Mostrar nombre del usuario logueado en el header window.addEventListener('DOMContentLoaded', async () => { const userId = sessionStorage.getItem("userId"); if (!userId) { alert("Sesión expirada, inicia sesión de nuevo."); window.location.href = "index.html"; return; } try { const res = await fetch(`/api/users/${userId}`); const user = await res.json(); if (user?.name) { document.getElementById("nombreUsuarioHeader").textContent = user.name; } } catch (err) { console.error("❌ Error al obtener datos del usuario:", err); } });