--- type: Entity layer: wiki tags: [stack, dashdescomplicar, backend, mysql, database, core] title: "MySQL-Pool" --- # MySQL-Pool Pool de ligações MySQL2 (promise) ao Desk CRM Perfex. Fonte de verdade para dados de tarefas, projectos, tickets, facturação, despesas, leads e monitorização. ## Responsabilidades - **Connection Pool**: 10 ligações máx, timeout 10s connect / 15s acquire / 30s query - **Validação**: Credenciais obrigatórias (`DB_USER`, `DB_PASS`, `DB_NAME`) — crash ao iniciar se ausentes - **Charset**: `utf8mb4` para suporte completo a caracteres PT-PT - **Health Check**: Teste automático ao iniciar (`pool.getConnection()`) ## Stack - **Driver**: `mysql2` 3.11 (modo promise) - **Host**: `176.9.3.158` (servidor CWP) - **Base de Dados**: `ealmeida_desk24` (Perfex CRM) - **Prefixo**: `DB_*` (NÃO `MYSQL_*`) ## Tabelas Consumidas | Tabela | Consumidor | Uso | |---|---|---| | `tbltasks` | dashboard.ts, operations.ts | Tarefas (urgentes, alta, vencidas) | | `tblprojects` | dashboard.ts | Projectos (JOIN com tasks) | | `tbltickets` | dashboard.ts, operations.ts | Tickets suporte (abertos, prioridade, departamento) | | `tblinvoices` | financial.ts | Facturas (vendas mês/ano, evolução) | | `tblexpenses` | financial.ts | Despesas (mês/ano, categorias) | | `tblexpenses_categories` | financial.ts | Categorias despesas (JOIN) | | `tblleads` | dashboard.ts | Leads (contactar, followup, proposta) | | `tbltaskstimers` | dashboard.ts | Timesheet (horas registadas) | | `tbldepartments` | operations.ts | Departamentos tickets | | `tbl_eal_monitoring` | monitoring.ts | Monitorização (items, categorias, status) | | `tbl_eal_hetzner_servers` | hetzner.ts | Servidores Hetzner (sync, métricas) | | `tbl_eal_hetzner_metrics` | hetzner.ts | Histórico métricas Hetzner | ## Localizações - **Código**: `Dev/DashDescomplicar/api/db.ts` (42 linhas) - **Config**: `.env` (`DB_HOST`, `DB_USER`, `DB_PASS`, `DB_NAME`) - **Host**: CWP Server (VM 100, IP `5.9.90.105`) ## Dependências - `.env` com `DB_HOST`, `DB_USER`, `DB_PASS`, `DB_NAME` - Servidor MySQL no CWP (porta 3306, reachable do EasyPanel) ## Fornece a - **Express-API**: Todas as rotas que consomem Desk CRM - **Serviços**: dashboard, financial, operations, monitoring, hetzner, server-metrics