// actualizar.js
// Lógica para actualizar horarios desde el modal de asignación (NO edición)
$(document).ready(function() {
    // Al guardar en modo asignación (no edición)
    $('#form-asignar-horario').off('submit.actualizar').on('submit.actualizar', function(e) {
        // Si hay curp-editar, dejar que el flujo de edición (ahora externo) actúe
        const curpEditar = $('#modalAsignarHorario').data('curp-editar');
        if (curpEditar) return; // Si es edición, no hacer nada aquí
        e.preventDefault();
        const id_quincena = $('#periodo-asignacion').val();
        // Obtener horario semanal
        let horarios = {};
        $('#tabla-horario-semanal tbody tr').each(function() {
            const dia = $(this).find('td:first').text().trim();
            const entrada = $(this).find('input[name^="entrada_"]').val();
            const salida = $(this).find('input[name^="salida_"]').val();
            horarios[dia] = { entrada, salida };
        });
        // Obtener descansos
        let descansosPorSemana = [];
        $('.descanso-semana-select').each(function() {
            descansosPorSemana.push($(this).val());
        });
        // Enviar AJAX para asignar
        $.post('../../../backend/api/asignar_horario_semanal.php', {
            // Aquí se asume que hay un campo para los colaboradores seleccionados
            // Modifica según tu implementación
            colaboradores: JSON.stringify(obtenerColaboradoresSeleccionados()),
            id_quincena: id_quincena,
            horarios: JSON.stringify(horarios),
            descansos: JSON.stringify(descansosPorSemana)
        }, function(resp) {
            if (typeof resp === 'string') resp = JSON.parse(resp);
            if (!resp.success) {
                Swal.fire({ icon: 'error', title: 'Error', text: resp.message || 'No se pudo asignar el horario.' });
                return;
            }
            $('#modalAsignarHorario').modal('hide');
            Swal.fire({ icon: 'success', title: 'Horario asignado', text: 'Horario asignado correctamente.' });
            // Opcional: refrescar calendario o UI
            // location.reload();
        });
    });

    // Al cerrar el modal, restaurar el estado
    $('#modalAsignarHorario').on('hidden.bs.modal', function() {
        $('#modalAsignarHorarioLabel').text('Asignar horario a colaboradores seleccionados');
        $('.modal-footer button[type="submit"]').text('Asignar').removeClass('btn-success').addClass('btn-primary');
        $('#modalAsignarHorario').removeData('curp-editar');
    });
});

// Función auxiliar para obtener los colaboradores seleccionados (ajusta según tu UI)
function obtenerColaboradoresSeleccionados() {
    let seleccionados = [];
    $('.colaborador-checkbox:checked').each(function() {
        seleccionados.push($(this).val());
    });
    return seleccionados;
}
