SyedFouzan's picture
{
ffb4c35 verified
Raw History Blame Contribute Delete
1.14 kB
const mongoose = require('mongoose');
const documentSchema = new mongoose.Schema({
filename: {
type: String,
required: true
},
originalName: {
type: String,
required: true
},
mimeType: {
type: String,
required: true
},
size: {
type: Number,
required: true
},
url: {
type: String,
required: true
},
uploadedBy: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
},
accessRoles: [{
type: String,
enum: ['admin', 'manager', 'employee']
}],
accessUsers: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}],
category: {
type: String,
enum: ['contract', 'report', 'invoice', 'presentation', 'other'],
default: 'other'
},
version: {
type: Number,
default: 1
},
description: {
type: String,
trim: true
},
tags: [{
type: String,
trim: true
}],
isPublic: {
type: Boolean,
default: false
}
}, {
timestamps: true
});
documentSchema.index({ uploadedBy: 1 });
documentSchema.index({ category: 1 });
module.exports = mongoose.model('Document', documentSchema);