export type * from "./app"; export type * from "../prisma/client"; export type * from "./types"; import { app } from "./app"; import { initializeCronJobs } from "./cron/cron"; import { prisma } from "./utils/prisma"; const cronController = initializeCronJobs(); const PORT = process.env.PORT || 5000; prisma.$connect().then(async () => { console.log("Connected to database"); // For backwards compatibility, set all messages that have campaign status === "CANCELLED" to "CANCELLED" await prisma.message.updateMany({ where: { Campaign: { status: "CANCELLED", }, status: { in: ["QUEUED", "PENDING", "RETRYING"], }, }, data: { status: "CANCELLED", }, }); app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); }); }); // Handle graceful shutdown const shutdown = () => { console.log("Shutting down cron jobs..."); cronController.stop(); process.exit(0); }; process.on("SIGINT", shutdown); process.on("SIGTERM", shutdown);