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() 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(cpf) mensagem = f"O realizado dos seus PDVS são {dados} " 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}")