sanket3280/code-execution
0
1const mongoose = require('mongoose');2 3const LanguageSchema = new mongoose.Schema({4 heCode: {5 type: String,6 required: true,7 trim: true,8 index: true,9 unique: true10 },11 displayName: {12 type: String,13 required: true,14 trim: true15 },16 version: {17 type: String,18 default: ''19 },20 iconName: {21 type: String,22 default: ''23 },24 enabled: {25 type: Boolean,26 default: true27 },28 meta: {29 type: mongoose.Schema.Types.Mixed,30 default: {}31 },32 createdAt: {33 type: Date,34 default: Date.now35 },36 updatedAt: {37 type: Date,38 default: Date.now39 }40});41 42// Compound unique index for deduplication fallback (displayName + version)43LanguageSchema.index({ displayName: 1, version: 1 }, { unique: true, sparse: true });44 45LanguageSchema.pre('save', function(next) {46 this.updatedAt = new Date();47 next();48});49 50module.exports = mongoose.model('Language', LanguageSchema);51 52 53 