--- name: WhatsApp Chat sempre na sessao PRINCIPAL description: Chat WhatsApp da intranet NUNCA pode usar sessao financeiro/atendimento/outro - so principal (35003516) type: feedback originSessionId: c2d7272c-b8fa-4ca0-88c4-32ac991429c0 --- # Chat WhatsApp - sempre PRINCIPAL, nunca vazar para outras sessoes O chat da intranet (`/whatsapp-chat`) tem que sair OBRIGATORIAMENTE pela sessao **principal** (numero 553135003516, GotechBr). Nunca pela financeiro (84932799), atendimento ou outro. **Why:** A tabela `whatsapp_sessions` permite o mesmo `user_id=1` ter varias sessoes conectadas (principal+financeiro+outro). O `->first()` no CI4 sem `ORDER BY` retorna ordem indefinida, entao se nao filtrar por `tipo`, o chat pode pegar a sessao financeiro e mandar mensagem do numero errado pro cliente. Em 2026-05-06 isso aconteceu - cliente recebeu chat pelo financeiro. **How to apply:** - `WhatsAppChat::getSessionForChat()` SEMPRE filtra `where('tipo', 'principal')` - sem fallback pra outros tipos - `WhatsappSessionModel::getActiveSession($userId, $tipo = null)` aceita tipo opcional, default null mantem retrocompatibilidade - Se for criar nova rota/controller que usa o chat (nao cobranca/NFSe), usar a sessao principal - Para cobranca/NFSe/estornos continua a regra [[feedback_financeiro_sessao_wa]] - financeiro - Antes de adicionar fallback "qualquer sessao conectada" lembrar que isso JA causou vazamento **Arquivos:** - `app/Controllers/WhatsAppChat.php::getSessionForChat()` - `app/Models/WhatsappSessionModel.php::getActiveSession()`