const mongoose = require('mongoose'); const CommentSchema = new mongoose.Schema({ author: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, content: { type: String, required: true, maxlength: 500 }, createdAt: { type: Date, default: Date.now } }); const PostSchema = new mongoose.Schema({ author: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true }, content: { type: String, maxlength: 2000 }, hashtags: [{ type: String, lowercase: true, trim: true }], imageUrl: String, tags: [{ type: String, enum: ['furry', 'anime', 'other'], required: true }], mentionedUsers: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }], isNSFW: { type: Boolean, default: false }, likes: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }], comments: [CommentSchema], views: { type: Number, default: 0 }, createdAt: { type: Date, default: Date.now } }); // Текстовый индекс для поиска PostSchema.index({ content: 'text', hashtags: 'text' }); module.exports = mongoose.model('Post', PostSchema);