from datetime import datetime import gerentes_erp as gerp import pandas as pd import login as GI dimensao = pd.read_csv('Dimensao.csv') # Dicionário para armazenar o estado dos usuários user_states = {} def extract_message_data(data): """ Função que extrai o número, nome e mensagem do JSON recebido. """ try: # Extrair número, nome e mensagem number = data['data']['key']['remoteJid'].split('@')[0] # Extrai o número antes de @ name = data['data']['pushName'] # Extrai o nome do remetente message = data['data']['message']['conversation'] # Extrai a mensagem enviada # Verificar o estado do usuário if message.lower() == "iniciar": # Configurar o estado do usuário como "aguardando nome" user_states[number] = "aguardando_nome" resposta = f"Olá, {name}! Você iniciou o Consultme. Por favor, digite o seu cpf para obter o menu." print("Bot aguardando nome da consultora.") elif number in user_states and user_states[number] == "aguardando_nome": # Usuário enviou o nome da consultora, processar a consulta cpf = message.strip() cpf = int(cpf) hoje = datetime.today() primeiro_dia_mes = hoje.replace(day=1) hoje_formatado = hoje.strftime('%Y-%m-%d') primeiro_dia_formatado = primeiro_dia_mes.strftime('%Y-%m-%d') gerp.log_pdv(cpf) if cpf in dimensao['cpf_gr'].values or cpf in dimensao['cpf_sup'].values: # Executa a consulta no sistema ERP dados = GI.main() mensagem = gerp.exec(cpf, primeiro_dia_formatado, hoje_formatado) resposta = f"Olá, {name} " + mensagem else: mensagem = "Seu cpf não está cadastrado." resposta = mensagem # Limpar o estado do usuário após responder del user_states[number] print(f"Consulta realizada com sucesso para {cpf}.") else: # Caso o usuário envie outra mensagem sem iniciar resposta = "Por favor, digite 'iniciar' para começar o Consultme." print("Bot pediu ao usuário para iniciar.") # Retorna as informações extraídas return number, name, message, resposta except KeyError as e: raise ValueError(f"Erro ao extrair dados: {e}")