CoolFace
Apppublic

sanket3280/code-execution

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
SuspiciousActivity.js62 linesDownload Raw Back to models
1const mongoose = require('mongoose');2const Schema = mongoose.Schema;3 4const SuspiciousActivitySchema = new Schema({5  challengeId: {6    type: Schema.Types.ObjectId,7    ref: 'Challenge',8    required: true,9    index: true10  },11  participantId: {12    type: Schema.Types.ObjectId,13    ref: 'User',14    required: true,15    index: true16  },17  activityType: {18    type: String,19    enum: [20      'large_paste',21      'rapid_switching',22      'code_similarity',23      'external_source',24      'manual_flag'25    ],26    required: true27  },28  severity: {29    type: String,30    enum: ['low', 'medium', 'high'],31    default: 'medium'32  },33  details: {34    type: Schema.Types.Mixed,35    // Stores specific details like similarity percentage, lines pasted, etc.36  },37  detectedAt: {38    type: Date,39    default: Date.now,40    index: true41  },42  reviewedBy: {43    type: Schema.Types.ObjectId,44    ref: 'User'45  },46  reviewNotes: {47    type: String48  },49  status: {50    type: String,51    enum: ['pending', 'reviewed', 'dismissed', 'confirmed'],52    default: 'pending',53    index: true54  }55});56 57// Compound index for efficient queries58SuspiciousActivitySchema.index({ challengeId: 1, status: 1, severity: 1 });59SuspiciousActivitySchema.index({ participantId: 1, detectedAt: -1 });60 61module.exports = mongoose.model('SuspiciousActivity', SuspiciousActivitySchema);62