parent
0dd25e5176
commit
b80737ef1b
@ -0,0 +1,29 @@
|
||||
// page.js
|
||||
// Copyright (C) 2021 Digital Telepresence, LLC
|
||||
// License: Apache-2.0
|
||||
|
||||
'use strict';
|
||||
|
||||
const mongoose = require('mongoose');
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const PAGE_STATUS_LIST = ['draft','published','archived'];
|
||||
|
||||
const PageSchema = new Schema({
|
||||
title: { type: String, required: true },
|
||||
slug: { type: String, required: true, lowercase: true, unique: true },
|
||||
image: {
|
||||
header: { type: Schema.ObjectId, ref: 'Image' },
|
||||
icon: { type: Schema.ObjectId, ref: 'Image' },
|
||||
},
|
||||
content: { type: String, required: true, select: false },
|
||||
status: { type: String, enum: PAGE_STATUS_LIST, default: 'draft', index: true },
|
||||
menu: {
|
||||
icon: { type: String, required: true },
|
||||
label: { type: String, required: true },
|
||||
order: { type: Number, default: 0, required: true },
|
||||
parent: { type: Schema.ObjectId, index: 1, ref: 'Page' },
|
||||
},
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('Page', PageSchema);
|
@ -0,0 +1,36 @@
|
||||
// post.js
|
||||
// Copyright (C) 2021 Digital Telepresence, LLC
|
||||
// License: Apache-2.0
|
||||
|
||||
'use strict';
|
||||
|
||||
const path = require('path');
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const {
|
||||
ResourceStats,
|
||||
ResourceStatsDefaults,
|
||||
} = require(path.join(__dirname, 'lib', 'resource-stats.js'));
|
||||
|
||||
const POST_STATUS_LIST = ['draft','published','archived'];
|
||||
|
||||
const PostSchema = new Schema({
|
||||
created: { type: Date, default: Date.now, required: true, index: -1 },
|
||||
updated: { type: Date },
|
||||
author: { type: Schema.ObjectId, required: true, index: 1, ref: 'User' },
|
||||
image: { type: Schema.ObjectId, ref: 'Image' },
|
||||
title: { type: String, required: true },
|
||||
slug: { type: String, required: true, lowercase: true, unique: true },
|
||||
summary: { type: String, required: true },
|
||||
content: { type: String, required: true, select: false },
|
||||
status: { type: String, enum: POST_STATUS_LIST, default: 'draft', index: true },
|
||||
stats: { type: ResourceStats, default: ResourceStatsDefaults, required: true },
|
||||
flags: {
|
||||
enableComments: { type: Boolean, default: true, index: true },
|
||||
isFeatured: { type: Boolean, default: false, index: true },
|
||||
},
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('Post', PostSchema);
|
Loading…
Reference in new issue