const express = require('express'); const path = require('path'); const { logger } = require('./utils/logger'); const indexRoutes = require('./routes/index'); const apiRoutes = require('./routes/api'); const templatesRoutes = require('./routes/templates'); const exportRoutes = require('./routes/export'); const aiRoutes = require('./routes/ai'); const app = express(); const port = process.env.PORT || 3000; app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use('/assets', express.static(path.join(__dirname, 'assets'))); // Create data directory if it doesn't exist const fs = require('fs'); const dataDir = path.join(__dirname, 'data'); if (!fs.existsSync(dataDir)) { fs.mkdirSync(dataDir); logger.info('SYSTEM', 'Created data directory', { path: dataDir }); } // API request logging middleware app.use((req, res, next) => { const start = Date.now(); logger.apiRequest(req.method, req.path, req.body); res.on('finish', () => { const duration = Date.now() - start; logger.apiResponse(req.path, res.statusCode, duration); }); next(); }); app.use('/', indexRoutes); app.use('/api', apiRoutes); app.use('/api/templates', templatesRoutes); app.use('/api/export', exportRoutes); app.use('/api/ai', aiRoutes); app.listen(port, () => { logger.systemStart(port); console.log(`Server running on port ${port}`); });