import mongoose from "mongoose"; import { Report } from "./models/report.js"; let isConnected = false; export async function initDb(): Promise { if (isConnected || mongoose.connection.readyState >= 1) return; const { MONGO_HOST = 'localhost', MONGO_USER, MONGO_PASS, MONGO_NAME = 'tracreport', MONGO_OPTS = '', } = process.env const credentials = MONGO_USER && MONGO_PASS ? `${encodeURIComponent(MONGO_USER)}:${encodeURIComponent(MONGO_PASS)}@` : ''; const MONGO_URI = `mongodb://${credentials}${MONGO_HOST}/${MONGO_NAME}${MONGO_OPTS ? '?' + MONGO_OPTS : ''}`; try { await mongoose.connect(MONGO_URI); isConnected = true; console.log('✅ MongoDB connected'); await Report.syncIndexes(); console.log('✅ Indexes synced'); } catch (err) { console.error('❌ MongoDB connection error:', err) process.exit(1); } }