export function cambiarEstatus(curp, nuevoEstatus) {
  actualizarEstatus('../../backend/contabilidad/actualizar_estatus_baja.php', curp, nuevoEstatus, '#tablaBajas');
}

export function cambiarEstatusAlta(curp, nuevoEstatus) {
  actualizarEstatus('../../backend/contabilidad/actualizar_estatus_alta.php', curp, nuevoEstatus, '#tablaAltas');
}

function actualizarEstatus(url, curp, nuevoEstatus, tablaId) {
  const estatusVisual = nuevoEstatus.replace('_', ' ').toUpperCase();

  Swal.fire({
    title: '¿Estás seguro?',
    text: `Se cambiará el estatus a "${estatusVisual}"`,
    icon: 'warning',
    showCancelButton: true,
    confirmButtonText: 'Sí, cambiar',
    cancelButtonText: 'Cancelar'
  }).then(result => {
    if (result.isConfirmed) {
      fetch(url, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ curp, nuevoEstatus })
      })
      .then(res => res.json())
      .then(data => {
        if (data.success) {
          Swal.fire('Actualizado', 'El estatus fue actualizado correctamente.', 'success');

          // Validar si la tabla existe antes de recargar
          const $tabla = $(tablaId);
          if ($tabla.length && $.fn.DataTable.isDataTable($tabla)) {
            $tabla.DataTable().ajax.reload(null, false);
          }

        } else {
          Swal.fire('Error', data.message || 'No se pudo actualizar.', 'error');
        }
      });
    }
  });
}

export function activarDatos(curp, nombreCompleto) {
  Swal.fire({
    title: '¿Dar de alta al colaborador?',
    text: `Esto activará los datos y cambiará el estatus a CONCLUIDO para: ${nombreCompleto}`,
    icon: 'question',
    showCancelButton: true,
    confirmButtonText: 'Sí, activar',
    cancelButtonText: 'Cancelar'
  }).then(result => {
    if (result.isConfirmed) {
      fetch('../../backend/contabilidad/activar_datos.php', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ curp })
      })
      .then(res => res.json())
      .then(data => {
        if (data.success) {
          Swal.fire('Activado', `El colaborador ${nombreCompleto} ha sido dado de alta.`, 'success');

          const $tabla = $('#tablaAltas');
          if ($tabla.length && $.fn.DataTable.isDataTable($tabla)) {
            $tabla.DataTable().ajax.reload(null, false);
          }

        } else {
          Swal.fire('Error', data.message || 'No se pudo activar.', 'error');
        }
      });
    }
  });
}

export function darDeBajaDatos(curp, nombreCompleto) {
  Swal.fire({
    title: '¿Dar de baja al colaborador?',
    text: `Esto desactivará los datos y marcará como CONCLUIDO al colaborador: ${nombreCompleto}`,
    icon: 'warning',
    showCancelButton: true,
    confirmButtonText: 'Sí, dar de baja',
    cancelButtonText: 'Cancelar'
  }).then(result => {
    if (result.isConfirmed) {
      fetch('../../backend/contabilidad/dar_baja_datos.php', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ curp })
      })
      .then(res => res.json())
      .then(data => {
        if (data.success) {
          Swal.fire('Baja registrada', `El colaborador ${nombreCompleto} ha sido dado de baja correctamente.`, 'success');

          const $tabla = $('#tablaBajas');
          if ($tabla.length && $.fn.DataTable.isDataTable($tabla)) {
            $tabla.DataTable().ajax.reload(null, false);
          }

        } else {
          Swal.fire('Error', data.message || 'No se pudo dar de baja.', 'error');
        }
      });
    }
  });
}
