// /components/certificates/certificateModel.js const mongoose = require('mongoose'); const certificateSchema = new mongoose.Schema({ user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true, index: true }, course: { type: mongoose.Schema.Types.ObjectId, ref: 'Course', index: true }, title: { type: String, required: true, trim: true }, issuer: { type: String, trim: true }, /** Permanent object key inside the certificates bucket */ fileKey: { type: String, required: true, trim: true }, /** Original uploaded filename */ fileName: { type: String, trim: true }, /** Legacy alias kept in sync with fileName */ originalName: { type: String, trim: true }, /** Public URL only when the certificates bucket is public; otherwise null */ fileUrl: { type: String, trim: true, default: null }, bucket: { type: String, trim: true, default: 'certificates' }, mimeType: { type: String, trim: true }, issuedAt: { type: Date, default: Date.now }, isOfficial: { type: Boolean, default: false } }, { timestamps: true }); module.exports = mongoose.model('Certificate', certificateSchema);