import mongoose from "mongoose"; const MessageSchema = new mongoose.Schema({ sender: { type: String, enum: ["buyer", "vendor"], required: true }, buyerId: { type: String, required: true }, vendorId: { type: mongoose.Schema.Types.ObjectId, ref: "Vendor", required: true }, content: { type: String, required: true }, attachments: [{ type: String, required: false }], read: { type: Boolean, default: false }, createdAt: { type: Date, default: Date.now } }); const ChatSchema = new mongoose.Schema({ buyerId: { type: String, required: true }, vendorId: { type: mongoose.Schema.Types.ObjectId, ref: "Vendor", required: true }, storeId: { type: mongoose.Schema.Types.ObjectId, ref: "Store", required: true }, messages: [MessageSchema], orderId: { type: mongoose.Schema.Types.ObjectId, ref: "Order", required: false }, lastUpdated: { type: Date, default: Date.now } }); // Create indexes for faster queries ChatSchema.index({ buyerId: 1, vendorId: 1 }); ChatSchema.index({ vendorId: 1, lastUpdated: -1 }); ChatSchema.index({ buyerId: 1, lastUpdated: -1 }); export default mongoose.model("Chat", ChatSchema);