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);