/**
 * beforeSendValidate.js — Exemplo: Solicitacao de Compras
 * 
 * Executa NO NAVEGADOR antes de submeter o formulario.
 * E a primeira camada de validacao (client-side).
 * NAO substitui validateForm (server-side) — apenas complementa.
 * 
 * @param {number} numState - Atividade atual
 * @param {number} nextState - Proxima atividade
 * @returns {boolean} true = permite envio, false = bloqueia
 */
function beforeSendValidate(numState, nextState) {

    // ============================================
    // ATIVIDADE 4 — Solicitante
    // ============================================
    if (numState == 4) {
        // Validar campo obrigatorio
        if (!$('#descricao_solicitacao').val()) {
            FLUIGC.toast({
                title: 'Campo obrigatório',
                message: 'Preencha a descrição da solicitação.',
                type: 'danger'
            });
            return false;
        }

        // Validar data de necessidade
        if (!$('#data_necessidade').val()) {
            FLUIGC.toast({
                title: 'Campo obrigatório',
                message: 'Informe a data de necessidade.',
                type: 'danger'
            });
            return false;
        }

        // Validar se tem ao menos um item na tabela pai-filho
        var linhas = $('#tblItens tbody tr').length;
        if (linhas == 0) {
            FLUIGC.toast({
                title: 'Itens obrigatórios',
                message: 'Adicione ao menos um item à solicitação.',
                type: 'danger'
            });
            return false;
        }
    }

    // ============================================
    // ATIVIDADE 5 — Aprovador
    // ============================================
    if (numState == 5) {
        // Validar se selecionou radio de aprovacao
        if (!$('input[name="aprovacao_gestor"]:checked').val()) {
            FLUIGC.toast({
                title: 'Decisão obrigatória',
                message: 'Selecione Aprovar ou Reprovar antes de enviar.',
                type: 'danger'
            });
            return false;
        }
    }

    return true;
}
