const mongoose = require('mongoose');

const profileViewSchema = new mongoose.Schema({
  // Кто просматривал
  viewer: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User',
    required: true
  },
  // Чей профиль просматривали
  profileOwner: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User',
    required: true
  },
  // Дата и время просмотра
  viewedAt: {
    type: Date,
    default: Date.now
  },
  // Источник просмотра (например, 'swipe', 'profile_link', 'chat', 'match')
  source: {
    type: String,
    enum: ['swipe', 'profile_link', 'chat', 'match', 'other'],
    default: 'other'
  }
}, {
  timestamps: true
});

// Составной индекс для предотвращения дублирования просмотров от одного пользователя в короткий период времени
// и для быстрого поиска просмотров конкретного профиля
profileViewSchema.index({ viewer: 1, profileOwner: 1, viewedAt: 1 });

// Индекс для быстрого подсчета просмотров конкретного пользователя
profileViewSchema.index({ profileOwner: 1, viewedAt: -1 });

module.exports = mongoose.model('ProfileView', profileViewSchema);