// frontend/assets/js/aspirantes/calculo-fecha-fin-estatus-nuevo.js

document.addEventListener('DOMContentLoaded', function() {
  const fechaIngresoInput = document.querySelector('input[name="fecha_ingreso"]');
  const fechaSugeridaInput = document.getElementById('fechaFinEstatusNuevoSugerida');
  const fechaEditableInput = document.getElementById('fechaFinEstatusNuevo');

  if (!fechaIngresoInput || !fechaSugeridaInput) return;

  function calcularFechaSugerida() {
    const valor = fechaIngresoInput.value;
    if (!valor) {
      fechaSugeridaInput.value = '';
      return;
    }
    const fechaIngreso = new Date(valor + 'T00:00:00');
    let mesBase = fechaIngreso.getMonth();
    let anioBase = fechaIngreso.getFullYear();
    const dia = fechaIngreso.getDate();

    let mesFin, anioFin;
    if (dia < 16) {
      // Último día del mes siguiente
      mesFin = mesBase + 1;
      anioFin = anioBase;
      if (mesFin > 11) {
        mesFin = 0;
        anioFin += 1;
      }
    } else {
      // Último día del segundo mes posterior
      mesFin = mesBase + 2;
      anioFin = anioBase;
      if (mesFin > 11) {
        mesFin = mesFin % 12;
        anioFin += 1;
        if (mesBase === 11) anioFin += 1; // Si es diciembre, sumar otro año
      }
    }
    const fechaSugerida = new Date(anioFin, mesFin + 1, 0); // Último día del mes calculado
    // Formato yyyy-mm-dd
    const yyyy = fechaSugerida.getFullYear();
    const mm = String(fechaSugerida.getMonth() + 1).padStart(2, '0');
    const dd = String(fechaSugerida.getDate()).padStart(2, '0');
    fechaSugeridaInput.value = `${yyyy}-${mm}-${dd}`;
    // Siempre actualizar la editable para que ambas sigan la fecha de ingreso
    if (fechaEditableInput) {
      fechaEditableInput.value = fechaSugeridaInput.value;
    }
  }

  fechaIngresoInput.addEventListener('change', calcularFechaSugerida);
  // Si ya hay valor al cargar
  calcularFechaSugerida();
});
