import mongoose, { Schema } from 'mongoose';

const demoRegistrationSchema = new Schema(
  {
    demoId: { type: Schema.Types.ObjectId, ref: 'demos', required: true },
    name: { type: String, trim: true },
    email: {
      type: String,
      required: true,
      lowercase: true,
      trim: true
    },
    phone: { type: String, trim: true },
    organization: { type: String, trim: true },
    role: { type: String, trim: true },
    preferredDate: { type: String, trim: true },
    message: { 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 DemoRegistrationModel(dbObject: typeof mongoose) {
  if (dbObject.models && dbObject.models.demo_registrations) {
    return dbObject.models.demo_registrations;
  }
  return dbObject.model('demo_registrations', demoRegistrationSchema);
}

export default DemoRegistrationModel;
