30 lines
1021 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),
2018-08-24 21:29:17 +09:30
editedUser: Model.hasOne('editedUser'),
2020-04-17 11:57:55 +02:00
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),
2018-08-24 21:30:06 +09:30
hiddenUser: Model.hasOne('hiddenUser'),
2020-04-17 11:57:55 +02:00
isHidden: computed('hiddenAt', (hiddenAt) => !!hiddenAt),
2015-04-25 22:28:39 +09:30
canEdit: Model.attribute('canEdit'),
canHide: Model.attribute('canHide'),
2020-04-17 11:57:55 +02:00
canDelete: Model.attribute('canDelete'),
});