document.getElementById('rutinaForm').addEventListener('submit', async function (e) { e.preventDefault(); const title = document.getElementById('title').value.trim(); const duration = parseInt(document.getElementById('duration').value.trim()); const language = document.getElementById('language').value; 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) || !language || !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('/routines/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, language, nombreCompetencia, tipoCompetencia, modalidad, participantes: [], createdBy: "coach-id-ejemplo", musicUrl, elements: [], formaciones: [] }; try { const res = await fetch('/routines', { 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."); } });