const express = require('express'); const cors = require('cors'); require('dotenv').config(); const partiesRouter = require('./routes/parties'); const mirchiTypesRouter = require('./routes/mirchiTypes'); const lotsRouter = require('./routes/lots'); const transactionsRouter = require('./routes/transactions'); const jamaRouter = require('./routes/jama'); const pattiRouter = require('./routes/patti'); const app = express(); const PORT = process.env.PORT || 4000; // Middleware app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: true })); // Request logging app.use((req, res, next) => { console.log(`${new Date().toISOString()} - ${req.method} ${req.path}`); next(); }); // Routes app.use('/api/parties', partiesRouter); app.use('/api/mirchi-types', mirchiTypesRouter); app.use('/api/lots', lotsRouter); app.use('/api/transactions', transactionsRouter); app.use('/api/jama', jamaRouter); app.use('/api/patti', pattiRouter); // Health check app.get('/health', (req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString() }); }); // Root endpoint app.get('/', (req, res) => { res.json({ message: 'Pattanshetty Inventory Management API', version: '1.0.0', endpoints: { parties: '/api/parties', mirchiTypes: '/api/mirchi-types', lots: '/api/lots', transactions: '/api/transactions' } }); }); // Error handling middleware app.use((err, req, res, next) => { console.error('Error:', err); res.status(500).json({ success: false, message: err.message || 'Internal server error' }); }); // 404 handler app.use((req, res) => { res.status(404).json({ success: false, message: 'Route not found' }); }); // Start server app.listen(PORT, () => { console.log(`🚀 Server running on port ${PORT}`); console.log(`📍 API available at http://localhost:${PORT}`); console.log(`💚 Health check: http://localhost:${PORT}/health`); }); module.exports = app;