const path = require("path"); const express = require("express"); const cors = require("cors"); const { connect } = require("./db"); const peopleRouter = require("./routes/people"); const projectsRouter = require("./routes/projects"); const tasksRouter = require("./routes/tasks"); const absencesRouter = require("./routes/absences"); const capacityRouter = require("./routes/capacity"); const app = express(); const PORT = process.env.PORT || 3000; app.use(cors()); app.use(express.json()); app.get("/api/health", (req, res) => res.json({ status: "ok" })); app.use("/api/people", peopleRouter); app.use("/api/projects", projectsRouter); app.use("/api/tasks", tasksRouter); app.use("/api/absences", absencesRouter); app.use("/api/capacity", capacityRouter); // Gebautes Frontend (Vite -> dist) ausliefern const frontendDist = path.join(__dirname, "..", "public"); app.use(express.static(frontendDist)); // SPA-Fallback: alles, was nicht /api ist, liefert die index.html aus app.get(/^(?!\/api).*/, (req, res) => { res.sendFile(path.join(frontendDist, "index.html")); }); app.use((err, req, res, next) => { console.error(err); res.status(500).json({ error: "Interner Serverfehler" }); }); async function start() { try { await connect(); app.listen(PORT, () => { console.log(`Jahresplanung-Server laeuft auf Port ${PORT}`); }); } catch (err) { console.error("Konnte keine Verbindung zu MongoDB herstellen:", err); process.exit(1); } } start();