// Lógica para autollenar Estado, Municipio y Colonia según el Código Postal Fiscal

document.addEventListener("DOMContentLoaded", function() {
  const cpInput = document.getElementById("cp_rfc");
  const coloniaSelect = document.getElementById("colonia_fiscal_select");
  if (!cpInput || !coloniaSelect) return;

  cpInput.addEventListener("blur", function() {
    const cp = cpInput.value.trim();
    if (cp.length < 4) return; // Evitar búsquedas con CP muy cortos

    // Autollenar Estado y Municipio
    fetch(`../../backend/aspirantes/get_datos_fiscales_cp.php?cp=${cp}`)
      .then(res => res.json())
      .then(data => {
        if (data.success) {
          document.getElementById("estado_fiscal").value = data.estado;
          document.getElementById("municipio_fiscal").value = data.municipio;
          document.getElementById("clave_estado_fiscal").value = data.clave_estado;
          document.getElementById("clave_municipio_fiscal").value = data.clave_municipio;
        } else {
          document.getElementById("estado_fiscal").value = "";
          document.getElementById("municipio_fiscal").value = "";
          document.getElementById("clave_estado_fiscal").value = "";
          document.getElementById("clave_municipio_fiscal").value = "";
          Swal && Swal.fire("No encontrado", "No se encontró información fiscal para el CP ingresado.", "info");
        }
      })
      .catch(() => {
        document.getElementById("estado_fiscal").value = "";
        document.getElementById("municipio_fiscal").value = "";
        document.getElementById("clave_estado_fiscal").value = "";
        document.getElementById("clave_municipio_fiscal").value = "";
        Swal && Swal.fire("Error", "No se pudo consultar el CP fiscal.", "error");
      });

    // Autollenar Colonia Fiscal
    coloniaSelect.innerHTML = '<option value="">Buscando colonias...</option>';
    coloniaSelect.disabled = true;

    fetch(`../../backend/aspirantes/get_colonias_cp.php?cp=${cp}`)
      .then(res => res.json())
      .then(data => {
        coloniaSelect.innerHTML = '';
        if (data.success && data.colonias.length > 0) {
          if (data.colonias.length === 1) {
            coloniaSelect.innerHTML = `<option value="${data.colonias[0]}">${data.colonias[0]}</option>`;
            coloniaSelect.value = data.colonias[0];
            coloniaSelect.disabled = false;
          } else {
            coloniaSelect.innerHTML = '<option value="">Seleccione una colonia</option>' +
              data.colonias.map(colonia => `<option value="${colonia}">${colonia}</option>`).join('');
            coloniaSelect.disabled = false;
          }
        } else {
          coloniaSelect.innerHTML = '<option value="">Sin colonias para este CP</option>';
          coloniaSelect.disabled = true;
        }
      })
      .catch(() => {
        coloniaSelect.innerHTML = '<option value="">Error al buscar colonias</option>';
        coloniaSelect.disabled = true;
      });
  });
});
