import express from 'express'; import cors from 'cors'; import path from 'path'; import dotenv from 'dotenv'; import authRoutes from './routes/auth.routes.js'; import customerRoutes from './routes/customer.routes.js'; import addressRoutes from './routes/address.routes.js'; import bankcardRoutes from './routes/bankcard.routes.js'; import documentRoutes from './routes/document.routes.js'; import meterRoutes from './routes/meter.routes.js'; import stressfreiEmailRoutes from './routes/stressfreiEmail.routes.js'; import contractRoutes from './routes/contract.routes.js'; import platformRoutes from './routes/platform.routes.js'; import cancellationPeriodRoutes from './routes/cancellation-period.routes.js'; import contractDurationRoutes from './routes/contract-duration.routes.js'; import providerRoutes from './routes/provider.routes.js'; import tariffRoutes from './routes/tariff.routes.js'; import userRoutes from './routes/user.routes.js'; import uploadRoutes from './routes/upload.routes.js'; import developerRoutes from './routes/developer.routes.js'; import contractCategoryRoutes from './routes/contractCategory.routes.js'; import contractTaskRoutes from './routes/contractTask.routes.js'; import appSettingRoutes from './routes/appSetting.routes.js'; import emailProviderRoutes from './routes/emailProvider.routes.js'; import cachedEmailRoutes from './routes/cachedEmail.routes.js'; import invoiceRoutes from './routes/invoice.routes.js'; import contractHistoryRoutes from './routes/contractHistory.routes.js'; dotenv.config(); const app = express(); const PORT = process.env.PORT || 3001; // Middleware app.use(cors()); app.use(express.json()); // Statische Dateien für Uploads app.use('/api/uploads', express.static(path.join(process.cwd(), 'uploads'))); // Routes app.use('/api/auth', authRoutes); app.use('/api/customers', customerRoutes); app.use('/api/addresses', addressRoutes); app.use('/api/bank-cards', bankcardRoutes); app.use('/api/documents', documentRoutes); app.use('/api/meters', meterRoutes); app.use('/api/stressfrei-emails', stressfreiEmailRoutes); app.use('/api/contracts', contractRoutes); app.use('/api/platforms', platformRoutes); app.use('/api/cancellation-periods', cancellationPeriodRoutes); app.use('/api/contract-durations', contractDurationRoutes); app.use('/api/providers', providerRoutes); app.use('/api/tariffs', tariffRoutes); app.use('/api/users', userRoutes); app.use('/api/upload', uploadRoutes); app.use('/api/developer', developerRoutes); app.use('/api/contract-categories', contractCategoryRoutes); app.use('/api', contractTaskRoutes); app.use('/api/settings', appSettingRoutes); app.use('/api/email-providers', emailProviderRoutes); app.use('/api', cachedEmailRoutes); app.use('/api/energy-details', invoiceRoutes); app.use('/api', contractHistoryRoutes); // Health check app.get('/api/health', (req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString() }); }); // Error handling app.use((err: Error, req: express.Request, res: express.Response, next: express.NextFunction) => { console.error(err.stack); res.status(500).json({ success: false, error: 'Interner Serverfehler' }); }); app.listen(PORT, () => { console.log(`Server läuft auf Port ${PORT}`); });