CoolFace
Apppublic

sanket3280/code-execution

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
ChallengeMessage.js43 linesDownload Raw Back to models
1const mongoose = require('mongoose');2const Schema = mongoose.Schema;3 4const ChallengeMessageSchema = new Schema({5  challenge: {6    type: Schema.Types.ObjectId,7    ref: 'Challenge',8    required: true9  },10  sender: {11    type: Schema.Types.ObjectId,12    ref: 'User',13    required: true14  },15  content: {16    type: String,17    required: true18  },19  createdAt: {20    type: Date,21    default: Date.now22  }23});24 25// Virtual to get sender name (populated from User)26ChallengeMessageSchema.virtual('senderName', {27  ref: 'User',28  localField: 'sender',29  foreignField: '_id',30  justOne: true,31  get: function (user) {32    return user ? user.username : 'Unknown User';33  }34});35 36// Configure toJSON and toObject to include virtuals37ChallengeMessageSchema.set('toJSON', { virtuals: true });38ChallengeMessageSchema.set('toObject', { virtuals: true });39 40// TTL index - automatically delete challenge messages after 2 days (172800 seconds)41ChallengeMessageSchema.index({ createdAt: 1 }, { expireAfterSeconds: 172800 });42 43module.exports = mongoose.model('ChallengeMessage', ChallengeMessageSchema);