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);
  }
});
