# Sistema de Agendamento Multi-Canal Este projeto é um sistema completo de agendamento que permite aos clientes marcarem horários de forma automatizada via WhatsApp (integrações Twilio e UltraMsg) e Telegram. O sistema inclui também um painel administrativo web para gestão da agenda e um serviço de lembretes automáticos. ## 🚀 Funcionalidades * **Agendamento via Chatbot:** Fluxo automatizado onde o cliente escolhe o período (Manhã/Tarde/Noite) e o horário disponível. * **Múltiplos Canais de Atendimento:** * **WhatsApp:** Suporte via API oficial (Twilio) e não-oficial (UltraMsg). * **Telegram:** Bot nativo para agendamentos. * **Painel Administrativo (Dashboard):** Interface visual desenvolvida em Streamlit para que o prestador de serviço possa: * Visualizar agendamentos em formato de calendário. * Criar, editar e excluir eventos manualmente. * **Lembretes Automáticos (`Lembrator`):** Serviço em segundo plano que notifica os clientes sobre seus horários com antecedência de 24h, 12h e 3h. * **Banco de Dados:** Persistência de dados utilizando MySQL (com suporte legado/local para SQLite). ## 📂 Estrutura de Arquivos ### Principais * **`Main_Receiver-Twilio01.py`**: Servidor Flask que atua como Webhook para o Twilio (WhatsApp). * **`Main_Receiver-Whatsapp.py`**: Servidor Flask para integração com a API UltraMsg (WhatsApp). * **`Main_Receiver_Telegram.py`**: Bot do Telegram que utiliza a biblioteca `python-telegram-bot`. * **`Painel_Prestador_Mysql.py`**: Aplicação Streamlit para gestão da agenda pelo prestador. * **`Lembrator.py`**: Script de automação para envio de lembretes. ### Banco de Dados * **`BD_manager_Mysql.py`**: Gerenciador de conexão e queries para MySQL (usado em produção). * **`BD_manager.py`**: Versão SQLite (uso local/teste). ## 🛠️ Instalação e Configuração 1. **Instale as dependências:** ```bash pip install -r requirements.txt ``` 2. **Configuração de Ambiente:** Crie um arquivo `.env` na raiz do projeto para armazenar suas credenciais sensíveis: ```env # Twilio TWILIO_ACCOUNT_SID=seu_sid TWILIO_AUTH_TOKEN=seu_token TWILIO_WHATSAPP_NUMBER=whatsapp:+14155238886 # Banco de Dados (se não usar st.secrets) DB_HOST=seu_host DB_USER=seu_user DB_PASSWORD=sua_senha DB_NAME=agenda DB_PORT=porta ``` *Nota: O painel Streamlit utiliza `st.secrets` para configuração do banco.* 3. **Banco de Dados:** Certifique-se de que as tabelas `events`, `acompanhamento` e `agenda` estejam criadas no seu banco de dados MySQL conforme esperado pelos scripts `BD_manager_Mysql.py`. ## ▶️ Como Executar ### 1. Iniciar os Chatbots Para ativar o atendimento automático, execute o script correspondente à plataforma desejada: * **WhatsApp (Twilio):** ```bash python Main_Receiver-Twilio01.py ``` * **Telegram:** ```bash python Main_Receiver_Telegram.py ``` ### 2. Painel Administrativo Para abrir a interface de gestão: ```bash streamlit run Painel_Prestador_Mysql.py ``` ### 3. Serviço de Lembretes Para iniciar o monitoramento e envio de avisos: ```bash python Lembrator.py ``` ## 📦 Dependências Principais * `Flask`: Servidor web para os webhooks. * `mysql-connector-python`: Driver de conexão com o MySQL. * `streamlit` & `streamlit-calendar`: Interface do painel administrativo. * `twilio`: SDK para envio de mensagens via Twilio. * `python-telegram-bot`: SDK para o bot do Telegram.