const mongoose = require("mongoose"); const UserBadgeSchema = new mongoose.Schema( { user: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true, index: true, }, badge: { type: mongoose.Schema.Types.ObjectId, ref: "Badge", required: true, index: true, }, earnedAt: { type: Date, default: Date.now, }, progress: { type: Number, default: 0, }, }, { timestamps: true, }, ); // Compound unique index to prevent duplicate badge awards UserBadgeSchema.index({ user: 1, badge: 1 }, { unique: true }); // Index for user badge queries UserBadgeSchema.index({ user: 1, earnedAt: -1 }); module.exports = mongoose.model("UserBadge", UserBadgeSchema);