/**
 * Autentifikācijas modulis
 * Apstrādā lietotāja pieslēgšanos un reģistrāciju
 * Veidoja: Edijs Dunavskis
 */

// Apstrādā pieslēgšanās formas iesniegšanu un novirza lietotāju uz sākumlapu
document.getElementById("loginForm")?.addEventListener("submit", async (e) => {
  e.preventDefault();
  
  const email = document.getElementById("email").value;
  const password = document.getElementById("password").value;
  
  try {
    // Nosūta pieslēgšanās pieprasījumu serverim
    const response = await fetch("http://localhost:3001/api/login", {
      method: "POST",
      headers: {
        "Content-Type": "application/json"
      },
      body: JSON.stringify({ email, password })
    });
    
    const data = await response.json();
    
    if (data.success) {
      // Saglabā lietotāja datus pārlūka krātuvē sesijas nodrošināšanai
      localStorage.setItem("user", JSON.stringify(data.user));
      localStorage.setItem("isLoggedIn", "true");
      
      // Pēc veiksmīgas pieslēgšanās novirza lietotāju uz sākumlapu
      window.location.href = "index.html";
    } else {
      alert(data.message);
    }
  } catch (error) {
    // Ja tiek ievadīti nepareizi dati, parāda kļūdas paziņojumu
    console.error("Login error:", error);
    alert("Failed to login. Please try again.");
  }
});

// Apstrādā reģistrācijas formas iesniegšanu
document.getElementById("registerForm")?.addEventListener("submit", async (e) => {
  e.preventDefault();
  
  const firstName = document.getElementById("firstName").value;
  const lastName = document.getElementById("lastName").value;
  const email = document.getElementById("regEmail").value;
  const password = document.getElementById("regPassword").value;
  const confirmPassword = document.getElementById("confirmPassword").value;
  const farmId = document.getElementById("farmId").value;
  const userRole = parseInt(document.getElementById("userRole").value);
  
  // Pārbauda, vai ievadītās paroles sakrīt
  if (password !== confirmPassword) {
    alert("Passwords do not match!");
    return;
  }
  
  try {
    // Nosūta reģistrācijas pieprasījumu serverim
    const response = await fetch("http://localhost:3001/api/register", {
      method: "POST",
      headers: {
        "Content-Type": "application/json"
      },
      body: JSON.stringify({
        firstName,
        lastName,
        email,
        password,
        farmId,
        status: userRole
      })
    });
    
    const data = await response.json();
    
    if (data.success) {
      alert(data.message);
      // Pēc veiksmīgas reģistrācijas novirza lietotāju uz pieslēgšanās lapu
      window.location.href = "login_lapa.html";
    } else {
      alert(data.message);
    }
  } catch (error) {
    console.error("Registration error:", error);
    alert("Failed to register. Please try again.");
  }
});

/**
 * Ielādē visas reģistrētās lauksaimniecības
 * Ievieš tās nolaižamajā izvēlnē
 */
async function loadFarms() {
  try {
    const response = await fetch("http://localhost:3001/api/farms");
    const farms = await response.json();
    
    const farmSelect = document.getElementById("farmId");
    if (farmSelect) {
      farmSelect.innerHTML = '<option value="">Select a farm...</option>';
      farms.forEach(farm => {
        const option = document.createElement("option");
        option.value = farm.id;
        option.textContent = farm.name;
        farmSelect.appendChild(option);
      });
    }
  } catch (error) {
    console.error("Failed to load farms:", error);
  }
}

// Ielādē lauksaimniecības, lai lietotājs varētu izvēlēties vēlamo lauksaimniecību reģistrācijas laikā
document.addEventListener("DOMContentLoaded", () => {
  loadFarms();
});
