forked from UKSOURCE/cms.hailearning.edu.vn
49 lines
937 B
JavaScript
49 lines
937 B
JavaScript
const mongoose = require('mongoose');
|
|
|
|
const HeaderMenuSchema = new mongoose.Schema({
|
|
title: {
|
|
type: String,
|
|
required: true,
|
|
trim: true
|
|
},
|
|
slug: {
|
|
type: String,
|
|
required: true,
|
|
trim: true,
|
|
lowercase: true
|
|
},
|
|
url: {
|
|
type: String,
|
|
required: true,
|
|
trim: true
|
|
},
|
|
parentId: {
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
ref: 'HeaderMenu',
|
|
default: null
|
|
},
|
|
order: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
status: {
|
|
type: String,
|
|
enum: ['active', 'inactive'],
|
|
default: 'active'
|
|
},
|
|
type: {
|
|
type: String,
|
|
enum: ['internal', 'external'],
|
|
default: 'internal'
|
|
}
|
|
}, {
|
|
timestamps: true
|
|
});
|
|
|
|
// Indexes for optimization
|
|
HeaderMenuSchema.index({ order: 1 });
|
|
HeaderMenuSchema.index({ status: 1 });
|
|
HeaderMenuSchema.index({ parentId: 1, order: 1 }); // Useful for fetching children in order
|
|
|
|
module.exports = mongoose.model('HeaderMenu', HeaderMenuSchema);
|