import { MongoClient, Db } from 'mongodb'; // MongoDB Verbindungs-URI aus der Umgebung. // Standard: lokale Instanz mit Datenbank "appointmentsdb". const uri = process.env.MONGO_URI || 'mongodb://localhost:27017/appointmentsdb'; // Im Next.js-Dev-Modus wird das Modul bei jedem Hot-Reload neu ausgewertet. // Damit nicht bei jeder Änderung eine neue Verbindung aufgebaut wird, wird // der Client (bzw. das Promise) global zwischengespeichert. const globalForMongo = globalThis as unknown as { _mongoClientPromise?: Promise; }; function getClientPromise(): Promise { if (!globalForMongo._mongoClientPromise) { const client = new MongoClient(uri); globalForMongo._mongoClientPromise = client.connect(); } return globalForMongo._mongoClientPromise; } /** * Gibt die (verbundene) Datenbankinstanz zurück. * Die Datenbank wird aus der URI abgeleitet. */ export async function getDb(): Promise { const client = await getClientPromise(); return client.db(); } // Name der Collection zentral definiert. export const APPOINTMENTS_COLLECTION = 'appointments';