const Hapi = require('@hapi/hapi'); require('dotenv').config(); const { initializeDb } = require('./config/db'); const { seedUsers } = require('./seed'); const init = async () => { const origins = [ ...new Set( (process.env.FRONTEND_ORIGIN || 'http://localhost:5173') .split(',') .map((o) => o.trim()) .filter(Boolean) .concat([ 'http://localhost:5173', 'http://localhost:5174', 'http://127.0.0.1:5173', 'http://127.0.0.1:5174', ]) ), ]; const server = Hapi.server({ port: Number(process.env.PORT || 3050), host: process.env.HOST || '0.0.0.0', routes: { cors: { origin: origins, headers: ['Accept', 'Authorization', 'Content-Type', 'If-None-Match'], additionalHeaders: ['X-Requested-With'], }, }, }); server.route([ { method: 'GET', path: '/health', handler: () => ({ status: 'ok', service: 'tgics' }), }, ...require('./routes/authRoutes'), ...require('./routes/dashboardRoutes'), ...require('./routes/doctorRoutes'), ...require('./routes/surveyRoutes'), ]); await initializeDb(); await seedUsers(); await server.start(); console.log('TGICS API running on %s', server.info.uri); }; process.on('unhandledRejection', (err) => { console.error(err); process.exit(1); }); init();