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

export interface ILessonBooking extends Document {
  date: Date;
  timeSlot: string;
  firstName: string;
  lastName: string;
  email: string;
  phone: string;
  golfId?: string;
  status: 'pending' | 'confirmed' | 'cancelled';
  notes?: string;
  createdAt: Date;
  updatedAt: Date;
}

const lessonBookingSchema = new Schema<ILessonBooking>(
  {
    date: { type: Date, required: true },
    timeSlot: { type: String, required: true },
    firstName: { type: String, required: true },
    lastName: { type: String, required: true },
    email: { type: String, required: true },
    phone: { type: String, required: true },
    golfId: String,
    status: {
      type: String,
      enum: ['pending', 'confirmed', 'cancelled'],
      default: 'pending',
    },
    notes: String,
  },
  {
    timestamps: true,
  }
);

lessonBookingSchema.index({ date: 1, timeSlot: 1 });
lessonBookingSchema.index({ email: 1 });
lessonBookingSchema.index({ createdAt: -1 });

export const LessonBooking = mongoose.model<ILessonBooking>('LessonBooking', lessonBookingSchema);
