const mongoose = require('mongoose');

const conversationSchema = new mongoose.Schema(
  {
    participants: [
      {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User',
        required: true,
      },
    ],
    // Можно добавить поле для последнего сообщения, чтобы легче было сортировать/отображать в списке чатов
    lastMessage: {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'Message',
    },
    // lastMessageTimestamp: { // Или просто timestamp последнего сообщения
    //   type: Date,
    //   default: Date.now
    // }
  },
  {
    timestamps: true, // createdAt, updatedAt для диалога
  }
);

// Индекс для участников, чтобы быстро находить диалоги по двум пользователям
// Уникальный индекс гарантирует, что между двумя пользователями будет только один диалог
// Порядок участников в массиве важен для уникальности, если не использовать $all
// Для простоты можно не делать его уникальным на уровне схемы, а проверять при создании.
// Либо хранить участников всегда в отсортированном порядке их ID.
// Пока оставим без уникального индекса, будем проверять в коде.
// conversationSchema.index({ participants: 1 }); 

const Conversation = mongoose.model('Conversation', conversationSchema);

module.exports = Conversation;