# Changelog Todas as alterações notáveis neste projecto serão documentadas neste ficheiro. ## [2.0.0] - 2026-02-04 ### Added #### API Node.js/Express Completa - ✅ Servidor Express em `/api/server.ts` - ✅ Connection pool MySQL em `/api/db.ts` - ✅ Proxy Vite configurado (`/api` → `http://localhost:3001`) #### Serviços - ✅ **Google Calendar API** (`/api/services/calendar.ts`) - Integração com calendários pessoal e profissional - Eventos de hoje e da semana - OAuth2 configurado com refresh token - ✅ **Dashboard Queries** (`/api/services/dashboard.ts`) - Tasks: urgente, alta prioridade, vencidas, em testes, esta semana - Monday Mood (tag especial #67) - Tickets abertos - Leads: contactar, followup, proposta - Projectos activos - Timesheet semanal (staff_id=1) - Billing 360 (clientes com horas facturadas vs entregues) - Pipeline completo (leads, estimates, proposals) - ✅ **Monitoring Queries** (`/api/services/monitoring.ts`) - Query à tabela `tbl_eal_monitoring` - Summary por categoria - Status geral (ok/warning/critical) #### Endpoints - ✅ `GET /api/dashboard` - Dashboard completo - ✅ `GET /api/monitor` - Monitorização de sistemas - ✅ `GET /api/health` - Health check #### Frontend - ✅ `App.tsx` actualizado para usar `/api/dashboard` (linha 425) - ✅ Fallback para dados mock em caso de erro (desenvolvimento) #### Infraestrutura - ✅ Scripts npm: - `npm run dev` - Vite + API em paralelo (concurrently) - `npm run dev:api` - API apenas (tsx watch) - `npm run dev:ui` - Vite apenas - `npm start` - Produção (serve API + static build) #### Dependências Adicionadas - `express` ^4.19.2 - `cors` ^2.8.5 - `mysql2` ^3.11.5 - `googleapis` ^144.0.0 - `concurrently` ^9.1.2 (dev) - `tsx` ^4.19.2 (dev) - `@types/express` ^5.0.0 (dev) - `@types/cors` ^2.8.17 (dev) #### Documentação - ✅ `api/README.md` - Documentação completa da API - ✅ `.env.example` - Template de configuração ### Changed - Título da tarefa #1556: "Dashboard Descomplicar - Dados Reais e API" - `vite.config.ts` - Adicionado proxy para `/api` - `package.json` - Nome alterado para `dash-descomplicar` ### Migrated Toda a lógica do PHP (`plan-eal.descomplicar.pt`) migrada para TypeScript: #### De `index.php`: - ✅ Google Calendar API (pessoal + profissional) - ✅ Todas as queries à BD Desk CRM - ✅ Billing 360 (horas facturadas vs entregues) - ✅ Pipeline de vendas - ✅ Cálculo de timesheet semanal - ✅ Monday Mood (tarefas com tag especial) #### De `monitor.php`: - ✅ Query à `tbl_eal_monitoring` - ✅ Organização por categoria - ✅ Cálculo de status geral ### Technical Notes #### Semana: Segunda a Domingo - Função `getWeekRange()` calcula início da semana (segunda-feira) - Timesheet usa UNIX timestamp para compatibilidade com dados antigos #### Billing 360 - Calcula horas entregues de `tbltaskstimers` - Compara com horas facturadas de `billing_360_invoices` - Status: `credit` (>5h crédito), `debt` (<-5h débito), `ok` (entre -5 e +5) #### Pipeline - Agrega leads por fase (`tblleads_status`) - Inclui estimates (status 2=Enviado, 3=Visto) - Inclui proposals (status 4) - Valor total calculado em SQL #### Performance - Queries em paralelo com `Promise.all()` - Connection pool MySQL (10 conexões) - Vite proxy em dev (zero CORS issues) ### Pending - [ ] Sistema de autenticação (JWT ou sessões) - [ ] Deploy em produção (EasyPanel) - [ ] Configurar variáveis de ambiente em produção - [ ] Testar Google Calendar OAuth refresh ### Breaking Changes - ❌ PHP backend descontinuado (`plan-eal.descomplicar.pt` será apagado) - ✅ Nova API Node.js/Express em `/api` - ✅ React dashboard em `dash.descomplicar.pt` --- ## [1.0.0] - 2026-02-03 ### Added - Dashboard React inicial com Vite + TypeScript - UI com Tailwind CSS 4 + Framer Motion - Design system: Glassmorphism + Bento Grid - Componentes: HeroStat, GlassCard, ProgressRing, Sparkline - Dados mock para demonstração - Autenticação Authentik (OIDC) configurada - Deploy EasyPanel em `dash.descomplicar.pt` ### Note Versão inicial com dados mock. API implementada na v2.0.0.