freeCodeCamp/api-server/common/models/article.json

103 lines
2.0 KiB
JSON
Raw Normal View History

2018-07-30 18:58:36 +00:00
{
"name": "article",
"plural": "articles",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"shortId": {
"type": "string",
"required": true
},
"slugPart": {
"type": "string",
"required": true,
"description": "A kebab-case-string created from the title, will have the shortId appended to it"
},
"meta": {
"type": "object",
"default": {},
"description": "A place to keep the referral link and read time"
},
2018-07-30 18:58:36 +00:00
"title": {
"type": "string",
"required": true
},
"author": {
"type": "object",
2018-07-30 18:58:36 +00:00
"required": true
},
"subtitle": {
"type": "string"
},
"featureImage": {
"type": "object"
2018-07-30 18:58:36 +00:00
},
"draft": {
"type": "string",
"required": true
},
"renderableContent": {
"type": "string"
},
"youtubeId": {
"type": "string",
"description": "A youtube video id eg: 'EErY9zXGLNU'"
},
2018-07-30 18:58:36 +00:00
"published": {
"type": "boolean",
"required": true,
"default": false
},
"featured": {
"type": "boolean",
"required": true,
"default": false
},
"underReview": {
"type": "boolean",
"required": true,
"default": false
},
"viewCount": {
"type": "number",
"required": true,
"default": 1
},
"firstPublishedDate": {
"type": "date"
},
2018-07-30 18:58:36 +00:00
"createdDate": {
"type": "date",
"required": true
},
"lastEditedDate": {
"type": "date",
"required": true
},
"history": {
"type": [
"object"
],
"required": true
}
},
"validations": [],
2018-07-30 20:06:56 +00:00
"relations": {
"user": {
"type": "belongsTo",
"model": "user",
"foreignKey": "externalId"
},
"popularity": {
"type": "hasOne",
"model": "popularity",
"foreignKey": "popularityId"
}
},
2018-07-30 18:58:36 +00:00
"acls": [],
"methods": {}
}