"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = __importDefault(require("express")); const cors_1 = __importDefault(require("cors")); const path_1 = __importDefault(require("path")); const dotenv_1 = __importDefault(require("dotenv")); const auth_routes_js_1 = __importDefault(require("./routes/auth.routes.js")); const customer_routes_js_1 = __importDefault(require("./routes/customer.routes.js")); const address_routes_js_1 = __importDefault(require("./routes/address.routes.js")); const bankcard_routes_js_1 = __importDefault(require("./routes/bankcard.routes.js")); const document_routes_js_1 = __importDefault(require("./routes/document.routes.js")); const meter_routes_js_1 = __importDefault(require("./routes/meter.routes.js")); const stressfreiEmail_routes_js_1 = __importDefault(require("./routes/stressfreiEmail.routes.js")); const contract_routes_js_1 = __importDefault(require("./routes/contract.routes.js")); const platform_routes_js_1 = __importDefault(require("./routes/platform.routes.js")); const cancellation_period_routes_js_1 = __importDefault(require("./routes/cancellation-period.routes.js")); const contract_duration_routes_js_1 = __importDefault(require("./routes/contract-duration.routes.js")); const provider_routes_js_1 = __importDefault(require("./routes/provider.routes.js")); const tariff_routes_js_1 = __importDefault(require("./routes/tariff.routes.js")); const user_routes_js_1 = __importDefault(require("./routes/user.routes.js")); const upload_routes_js_1 = __importDefault(require("./routes/upload.routes.js")); const developer_routes_js_1 = __importDefault(require("./routes/developer.routes.js")); const contractCategory_routes_js_1 = __importDefault(require("./routes/contractCategory.routes.js")); const contractTask_routes_js_1 = __importDefault(require("./routes/contractTask.routes.js")); const appSetting_routes_js_1 = __importDefault(require("./routes/appSetting.routes.js")); const emailProvider_routes_js_1 = __importDefault(require("./routes/emailProvider.routes.js")); const cachedEmail_routes_js_1 = __importDefault(require("./routes/cachedEmail.routes.js")); const invoice_routes_js_1 = __importDefault(require("./routes/invoice.routes.js")); const contractHistory_routes_js_1 = __importDefault(require("./routes/contractHistory.routes.js")); dotenv_1.default.config(); const app = (0, express_1.default)(); const PORT = process.env.PORT || 3001; // Middleware app.use((0, cors_1.default)()); app.use(express_1.default.json()); // Statische Dateien für Uploads app.use('/api/uploads', express_1.default.static(path_1.default.join(process.cwd(), 'uploads'))); // Routes app.use('/api/auth', auth_routes_js_1.default); app.use('/api/customers', customer_routes_js_1.default); app.use('/api/addresses', address_routes_js_1.default); app.use('/api/bank-cards', bankcard_routes_js_1.default); app.use('/api/documents', document_routes_js_1.default); app.use('/api/meters', meter_routes_js_1.default); app.use('/api/stressfrei-emails', stressfreiEmail_routes_js_1.default); app.use('/api/contracts', contract_routes_js_1.default); app.use('/api/platforms', platform_routes_js_1.default); app.use('/api/cancellation-periods', cancellation_period_routes_js_1.default); app.use('/api/contract-durations', contract_duration_routes_js_1.default); app.use('/api/providers', provider_routes_js_1.default); app.use('/api/tariffs', tariff_routes_js_1.default); app.use('/api/users', user_routes_js_1.default); app.use('/api/upload', upload_routes_js_1.default); app.use('/api/developer', developer_routes_js_1.default); app.use('/api/contract-categories', contractCategory_routes_js_1.default); app.use('/api', contractTask_routes_js_1.default); app.use('/api/settings', appSetting_routes_js_1.default); app.use('/api/email-providers', emailProvider_routes_js_1.default); app.use('/api', cachedEmail_routes_js_1.default); app.use('/api/energy-details', invoice_routes_js_1.default); app.use('/api', contractHistory_routes_js_1.default); // Health check app.get('/api/health', (req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString() }); }); // Production: Serve frontend static files if (process.env.NODE_ENV === 'production') { const publicPath = path_1.default.join(process.cwd(), 'public'); // Serve static files app.use(express_1.default.static(publicPath)); // SPA fallback: serve index.html for all non-API routes app.get('*', (req, res, next) => { // Skip API routes if (req.path.startsWith('/api')) { return next(); } res.sendFile(path_1.default.join(publicPath, 'index.html')); }); } // Error handling app.use((err, req, res, next) => { console.error(err.stack); res.status(500).json({ success: false, error: 'Interner Serverfehler' }); }); app.listen(PORT, () => { console.log(`Server läuft auf Port ${PORT}`); }); //# sourceMappingURL=index.js.map