import mongoose, { Schema, models, model } from 'mongoose';
import { config } from 'dotenv';

// Load env from default locations (.env, .env.local)
config();

const MONGODB_URI = process.env.MONGODB_URI as string;

if (!MONGODB_URI) {
  throw new Error('MONGODB_URI is not defined in environment variables');
}

let isConnected = false;

export async function ensureDbConnected(): Promise<void> {
  if (isConnected) return;
  if (mongoose.connection.readyState === 1) {
    isConnected = true;
    return;
  }
  await mongoose.connect(MONGODB_URI);
  isConnected = true;
}

const LogoSchema = new Schema(
  {
    image_url: { type: String, required: true },
    primary_color: { type: String, required: true },
    background_color: { type: String, required: true },
    username: { type: String, required: true },
    userId: { type: String, required: true },
  },
  { timestamps: { createdAt: 'createdAt', updatedAt: 'updatedAt' } }
);

export const Logo = models.Logo || model('Logo', LogoSchema);

