const express = require('express'); const { Model } = require('objection'); const Knex = require('knex'); const cron = require('node-cron'); const knexConfig = require('./src/config/database'); const MessageService = require('./src/email_server/services/MessageService'); // Initialize Knex const knex = Knex(knexConfig.development); Model.knex(knex); const app = express(); app.use(express.json()); // Routes app.use('/auth', require('./src/routes/auth')); app.use('/admin', require('./src/routes/admin')); app.use('/messages', require('./src/routes/messages')); app.use('/email', require('./src/routes/email')); app.use('/test', require('./src/routes/test')); app.use('/', require('./src/routes/index')); // Schedule cleanup job cron.schedule('0 0 * * *', async () => { try { await MessageService.cleanup(); console.log('Daily cleanup completed'); } catch (error) { console.error('Cleanup failed:', error); } }); const PORT = 3000; app.listen(PORT, () => { console.log(`API server running on port ${PORT}`); });