feat: add Node.js/Express API with real data from Desk CRM
- ✅ API completa em /api com TypeScript - ✅ Google Calendar integration (pessoal + profissional) - ✅ Queries diretas à BD: tasks, leads, projectos, billing, pipeline - ✅ Endpoints: /api/dashboard, /api/monitor, /api/health - ✅ Vite proxy configurado (/api → localhost:3001) - ✅ App.tsx usa /api/dashboard (não mais dados mock) - ✅ Migração completa do PHP (index.php + monitor.php) - ✅ CHANGELOG.md criado para tracking - ✅ Scripts npm: dev (paralelo), dev:api, dev:ui, start Dependencies: - express, cors, mysql2, googleapis - concurrently, tsx (dev) Breaking: PHP backend será descontinuado See: CHANGELOG.md, api/README.md Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
32
api/db.ts
Normal file
32
api/db.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Database Connection Pool
|
||||
* @author Descomplicar® | @link descomplicar.pt | @copyright 2026
|
||||
*/
|
||||
import mysql from 'mysql2/promise'
|
||||
|
||||
// Database configuration
|
||||
const config = {
|
||||
host: process.env.DB_HOST || 'localhost',
|
||||
user: process.env.DB_USER || 'ealmeida_desk24',
|
||||
password: process.env.DB_PASS || '9qPRdCGGqM4o',
|
||||
database: process.env.DB_NAME || 'ealmeida_desk24',
|
||||
waitForConnections: true,
|
||||
connectionLimit: 10,
|
||||
queueLimit: 0,
|
||||
charset: 'utf8mb4'
|
||||
}
|
||||
|
||||
// Create connection pool
|
||||
const pool = mysql.createPool(config)
|
||||
|
||||
// Test connection
|
||||
pool.getConnection()
|
||||
.then(conn => {
|
||||
console.log('✅ MySQL connected')
|
||||
conn.release()
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('❌ MySQL connection error:', err.message)
|
||||
})
|
||||
|
||||
export default pool
|
||||
Reference in New Issue
Block a user