import mongoose from "mongoose";

const MONGO_URI = process.env.MONGO_URI || "mongodb://127.0.0.1:27017";
const MONGO_DB = process.env.MONGO_DB || "logs";
const fullMongoURI = `${MONGO_URI}/${MONGO_DB}`;

declare global {
  var __mongooseConnected__: boolean;
}

export async function connectMongo(): Promise<void> {
  // ✅ Avoid reconnecting if already connected
  if (mongoose.connection.readyState === 1 || global.__mongooseConnected__) {
    console.log("⚡ MongoDB already connected — reusing existing connection");
    return;
  }

  try {
    await mongoose.connect(fullMongoURI, {
      dbName: MONGO_DB,
    });

    global.__mongooseConnected__ = true;
    console.log("✅ Connected to MongoDB:", fullMongoURI);
  } catch (error) {
    console.error("❌ MongoDB connection error:", error);
    throw error;
  }
}
