import mongoose, { Schema } from 'mongoose';

const webinarRegistrationSchema = new Schema(
  {
    webinarId: { type: Schema.Types.ObjectId, ref: 'webinars', required: true },
    name: { type: String, trim: true },
    email: {
      type: String,
      required: true,
      lowercase: true,
      trim: true
    },
    phone: { type: String, trim: true },
    slotId: { type: String },
    status: {
      type: String,
      enum: ['Confirmed', 'Pending', 'Cancelled'],
      default: 'Confirmed'
    },
    confirmationEmailSentAt: { type: Date, default: null },
    reminderEmailSentAt: { type: Date, default: null },
    reminderScheduledFor: { type: Date, default: null }
  },
  { timestamps: true }
);

function WebinarRegistrationModel(dbObject: typeof mongoose) {
  if (dbObject.models && dbObject.models.webinar_registrations) {
    return dbObject.models.webinar_registrations;
  }
  return dbObject.model('webinar_registrations', webinarRegistrationSchema, 'webinar-regitrastions');
}

export default WebinarRegistrationModel;
