import mongoose, { type InferSchemaType } from 'mongoose'

const chatMessageSchema = new mongoose.Schema(
  {
    meetingId: { type: mongoose.Schema.Types.ObjectId, ref: 'Meeting', required: true, index: true },
    senderId: { type: String, required: true },
    senderName: { type: String, required: true, maxlength: 80 },
    message: { type: String, required: true, maxlength: 2000 },
    timestamp: { type: Date, required: true, default: () => new Date() },
  },
  { timestamps: false },
)

chatMessageSchema.index({ meetingId: 1, timestamp: 1 })

export type ChatMessageDocument = InferSchemaType<typeof chatMessageSchema> & { _id: mongoose.Types.ObjectId }

export const ChatMessage = mongoose.model('ChatMessage', chatMessageSchema)
