paradigm-core
Version:
Paradigm Core Modules
85 lines (78 loc) • 1.82 kB
JavaScript
const DocumentModel = require('./document')
const RevisionModel = require('./template-revision')
/**
* TemplateModel Class
*
* @public
* @class TemplateModel
*/
class TemplateModel extends DocumentModel {
/**
* TemplateModel constructor
*
* @public
* @constructor
* @param {Object} options - Options
*/
constructor(options = {}) {
super(Object.assign({}, {
localKey: 'templateId',
table: 'templates',
permissions: {
create: ['admin'],
delete: ['admin'],
read: ['organization'],
replace: ['admin'],
update: ['admin'],
},
relations: {
belongsTo: [
{
node: 'organizations',
link: {
foreignKey: 'organizationId',
localKey: 'templateId'
},
joinTable: 'link_organizations_templates'
},
{
node: 'users',
link: {
foreignKey: 'userId',
localKey: 'templateId'
},
joinTable: 'link_users_templates'
}
],
hasMany: [
{
node: 'document',
link: {
foreignKey: 'documentId',
localKey: 'templateId'
},
joinTable: 'link_templates_documents'
},
{
node: 'taxonomies',
link: {
foreignKey: 'taxonomyId',
localKey: 'templateId'
},
joinTable: 'link_templates_taxonomies'
},
{
node: 'template_revisions',
link: {
foreignKey: 'templateRevisionId',
localKey: 'templateId'
},
joinTable: 'link_templates_revisions'
}
]
},
RevisionModel
}, options))
}
}
module.exports = TemplateModel