--- title: SouHub date: 2026-04-15 tags: - projeto - saas - beleza - codeigniter aliases: - SouMulherAgenda - SouHub Sistema status: em-desenvolvimento --- # SouHub Sistema SaaS multi-tenant para gestao de saloes de beleza e agendamentos. > [!info] Stack Tecnologica > - **Backend:** CodeIgniter 4 (PHP) > - **Banco:** MySQL (XAMPP local / cPanel em producao) > - **Frontend:** Bootstrap 5 + Tailwind CSS + Font Awesome 6 > - **JS:** SweetAlert2, DataTables, Fetch API (FormData) > - **WhatsApp:** Baileys API (`Divulgueregional\ConsumirApiBaileys\Baileys`) ## Arquitetura - **Multi-tenancy** via campo `user_id` em todas as tabelas - **Niveis de acesso** (campo `level` na tabela `usuarios`): - 1 = Admin do sistema - 2 = Dono do salao - 3 = Coordenador - 4 = Profissional - **Helper de permissoes** auto-carregado: `isAdmin()`, `canAccess()`, etc. ## Deploy - **Servidor:** `server.whmservidor.com` (SSH root) - **Path:** `/home/souhubcom/public_html/` - **Banco producao:** `souhubcom_sistema` - **Ferramenta:** PuTTY (pscp para upload, plink para comandos SSH) > [!warning] Deploy > Apenas no dominio `souhub.com.br`. ==NAO deployar no soumulheragenda==. ## Painel Admin O admin tem painel separado em `/admin/empresas` com funcionalidades: - Gestao de empresas (CRUD, reset senha, modo suporte) - Planos de assinatura (Bronze/Prata/Ouro/Diamante) - Faturas e cobrancas mensais - Tickets de suporte (chat-style) - Mensagens do sistema - Configuracoes globais > [!tip] Modo Suporte > Admin pode trocar `user_id` na sessao para visualizar o ambiente do cliente. Controlado pela flag `modo_suporte` na sessao. ## Tabelas Principais | Tabela | Descricao | |--------|-----------| | `usuarios` | Usuarios com nivel de acesso | | `planos` | Planos de assinatura (com campo `recursos` JSON) | | `faturas` | Cobrancas mensais por empresa | | `tickets_suporte` | Tickets de suporte | | `ticket_respostas` | Respostas dos tickets | | `admin_config` | Configuracoes globais (chave/valor) | ## Arquivos-Chave - `app/Controllers/Admin.php` — Painel admin completo - `app/Views/include/menu_admin.php` — Menu lateral (~4100 linhas, Tailwind global) - `app/Helpers/permission_helper.php` — Funcoes de permissao - `app/Config/Routes.php` — Rotas do sistema - `app/Config/Email.php` — SMTP Gmail ## Padroes do Projeto - **AJAX:** Usar `FormData` + `fetch` (NAO `JSON.stringify` com `Content-Type: json`) - **Cards:** Tailwind grid com `bg-white rounded-lg shadow-sm border p-4` - **Icones:** Font Awesome (`fas fa-*`) — NAO usar Feather Icons - **Tabelas:** DataTables com traducao PT-BR ## Sessao 2026-04-15 - Barra de pesquisa adicionada na view de empresas admin (filtro por nome, plano, status) - Relatorios Admin criado (`/admin/relatorios`) com filtro por empresa, tabelas DataTables, graficos Chart.js - Bug corrigido: `base_url()` com barra dupla causava 400 no nginx em TODOS os salvamentos da landing page - Reset layout agora reseta tudo: textos, cores, imagens (banner/logo), fonte, menus nav/footer - Correcoes nos Models (allowedFields) e try/catch em todos os endpoints de salvamento - Checkout: pagamento parcial (min 50%), combo PIX+Cartao, combinar na entrega ## Links - [[Projetos]] — Todos os projetos