import { Schema, model, Document, Types } from 'mongoose';

export interface IInterviewQuizAssignment extends Document {
  quiz: Types.ObjectId;
  candidateEmail: string;
  token: string;
  status: 'pending' | 'started' | 'submitted' | 'expired';
  startedAt?: Date;
  expiresAt?: Date;
  submittedAt?: Date;
  meta?: Record<string, unknown>;
  createdAt: Date;
  updatedAt: Date;
}

const interviewQuizAssignmentSchema = new Schema<IInterviewQuizAssignment>({
  quiz: { type: Schema.Types.ObjectId, ref: 'Quiz', required: true },
  candidateEmail: { type: String, required: true },
  token: { type: String, required: true, unique: true },
  status: { type: String, enum: ['pending', 'started', 'submitted', 'expired'], default: 'pending' },
  startedAt: { type: Date },
  expiresAt: { type: Date },
  submittedAt: { type: Date },
  meta: { type: Object },
}, { timestamps: true });

export default model<IInterviewQuizAssignment>('InterviewQuizAssignment', interviewQuizAssignmentSchema);
