58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
---
|
|
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
|