30 lines
1008 B
JavaScript
Raw Normal View History

import Model from '../Model';
import computed from '../utils/computed';
import { getPlainContent } from '../utils/string';
2015-04-25 22:28:39 +09:30
export default class Post extends Model {}
Object.assign(Post.prototype, {
number: Model.attribute('number'),
discussion: Model.hasOne('discussion'),
2015-04-25 22:28:39 +09:30
2018-08-24 21:25:45 +09:30
createdAt: Model.attribute('createdAt', Model.transformDate),
user: Model.hasOne('user'),
contentType: Model.attribute('contentType'),
content: Model.attribute('content'),
contentHtml: Model.attribute('contentHtml'),
contentPlain: computed('contentHtml', getPlainContent),
2015-04-25 22:28:39 +09:30
2018-08-24 21:27:05 +09:30
editedAt: Model.attribute('editedAt', Model.transformDate),
editUser: Model.hasOne('editUser'),
2018-08-24 21:27:05 +09:30
isEdited: computed('editedAt', editedAt => !!editedAt),
2015-04-25 22:28:39 +09:30
2018-08-24 21:27:50 +09:30
hiddenAt: Model.attribute('hiddenAt', Model.transformDate),
hideUser: Model.hasOne('hideUser'),
2018-08-24 21:27:50 +09:30
isHidden: computed('hiddenAt', hiddenAt => !!hiddenAt),
2015-04-25 22:28:39 +09:30
canEdit: Model.attribute('canEdit'),
canHide: Model.attribute('canHide'),
canDelete: Model.attribute('canDelete')
});