def processar_job(atendimento_id: int, mensagem_cliente: str):
    """Processa uma mensagem da fila."""
    import time
    global _BLOCO_FUNCTIONS

    if not _BLOCO_FUNCTIONS:
        _BLOCO_FUNCTIONS = montar_worker()

    conn = get_db()
    cursor = conn.cursor(dictionary=True)
    cursor.execute("SELECT cliente_numero, cliente_nome, status, protocolo FROM atendimentos WHERE id = %s", (atendimento_id,))
    atendimento = cursor.fetchone()
    cursor.close()
    conn.close()

    if not atendimento:
        log(f"Atendimento {atendimento_id} não encontrado.", "ERROR")
        return

    ctx = obter_contexto(atendimento_id)
    ctx['protocolo'] = atendimento['protocolo']
    numero_cliente = atendimento['cliente_numero']

    conn_check = get_db()
    cursor_check = conn_check.cursor()
    cursor_check.execute("SELECT COUNT(*) FROM mensagens_atendimento WHERE atendimento_id = %s AND origem = 'robot'", (atendimento_id,))
    count_robot_msgs = cursor_check.fetchone()[0]
    cursor_check.close()
    conn_check.close()

    if count_robot_msgs == 0:
        log("Primeira interação. Enviando saudação.")
        configs = carregar_configuracoes()
        saudacao = configs.get('saudacao_inicial', 'Olá! Sou o Gav, seu atendente virtual. Em que posso ajudar?')
        hora = datetime.now().hour
        horario = "bom dia" if hora < 12 else "boa tarde" if hora < 18 else "boa noite"
        saudacao = saudacao.replace("{horario}", horario)
        enviar_mensagem_whatsapp(numero_cliente, saudacao)
        salvar_mensagem_robot(atendimento_id, saudacao)
        ctx['historico'] = [{'origem': 'cliente', 'conteudo': mensagem_cliente}]
        atualizar_contexto(atendimento_id, ctx)
        return

    try:
        historico = ctx.get('historico', [])

        if 'processar_mensagem' in _BLOCO_FUNCTIONS:
            resultado = _BLOCO_FUNCTIONS['processar_mensagem'](ctx, mensagem_cliente, historico)
        else:
            resultado = {"resposta": "Desculpe, estou com dificuldades. Um atendente irá ajudar.", "acao": "transferir"}

        if resultado:
            for key, value in resultado.items():
                if key not in ['resposta', 'acao', 'setor_id', 'url', 'nome', 'proxima_etapa', 'conteudo_adicional', 'mensagem_followup']:
                    ctx[key] = value

            if resultado.get('resposta'):
                enviar_mensagem_whatsapp(numero_cliente, resultado['resposta'])
                salvar_mensagem_robot(atendimento_id, resultado['resposta'])
                historico.append({'origem': 'cliente', 'conteudo': mensagem_cliente})
                historico.append({'origem': 'robot', 'conteudo': resultado['resposta']})

            if resultado.get('acao') == 'transferir':
                setor_id = resultado.get('setor_id', 4)
                adicionar_fila_humana(atendimento_id, setor_id)
            elif resultado.get('acao') == 'encerrar':
                conn2 = get_db()
                cur2 = conn2.cursor()
                cur2.execute("UPDATE atendimentos SET status = 'encerrado', encerrado_em = NOW() WHERE id = %s", (atendimento_id,))
                conn2.commit()
                cur2.close()
                conn2.close()
                log(f"Atendimento {atendimento_id} encerrado por solicitação.")
            elif resultado.get('acao') == 'enviar_documento':
                url_pdf = resultado.get('url')
                nome_arquivo = resultado.get('nome', 'documento.pdf')
                if url_pdf:
                    enviar_documento_whatsapp(numero_cliente, url_pdf, nome_arquivo)
                    log(f"Documento enviado para {numero_cliente}: {url_pdf}")
                if resultado.get('mensagem_followup'):
                    time.sleep(2)
                    enviar_mensagem_whatsapp(numero_cliente, resultado['mensagem_followup'])
                    salvar_mensagem_robot(atendimento_id, resultado['mensagem_followup'])
                    historico.append({'origem': 'robot', 'conteudo': resultado['mensagem_followup']})
            elif resultado.get('acao') == 'enviar_texto_adicional':
                if resultado.get('conteudo_adicional'):
                    enviar_mensagem_whatsapp(numero_cliente, resultado['conteudo_adicional'])
                    salvar_mensagem_robot(atendimento_id, resultado['conteudo_adicional'])
                    historico.append({'origem': 'robot', 'conteudo': resultado['conteudo_adicional']})
                if resultado.get('mensagem_followup'):
                    time.sleep(1)
                    enviar_mensagem_whatsapp(numero_cliente, resultado['mensagem_followup'])
                    salvar_mensagem_robot(atendimento_id, resultado['mensagem_followup'])
                    historico.append({'origem': 'robot', 'conteudo': resultado['mensagem_followup']})

            ctx['historico'] = historico

            if resultado.get('proxima_etapa'):
                ctx['proxima_etapa'] = resultado['proxima_etapa']

        atualizar_contexto(atendimento_id, ctx)

    except Exception as e:
        log(f"Erro no processamento: {e}", "ERROR")
        enviar_mensagem_whatsapp(numero_cliente, "Desculpe, ocorreu um erro. Um atendente irá te ajudar em breve.")
        adicionar_fila_humana(atendimento_id)