Content.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { MediaList } from 'src/models/Media.js'
  2. import { Collection, Model } from 'js-abstract-model'
  3. import { CelebrityList } from 'src/models/Celebrity.js'
  4. import { ContentCategory } from 'src/models/ContentCategory.js'
  5. import { ContentHashtagList } from 'src/models/ContentHashtag.js'
  6. class Content extends Model {
  7. constructor (data) {
  8. super(data, [
  9. { key: 'id' },
  10. { key: 'title' },
  11. { key: 'description' },
  12. { key: 'summary' },
  13. { key: 'thumbnail' },
  14. { key: 'creation_time' },
  15. {
  16. key: 'is_free',
  17. defalut: false
  18. },
  19. {
  20. key: 'is_hidden',
  21. defalut: true
  22. },
  23. {
  24. key: 'medias',
  25. defalut: []
  26. },
  27. {
  28. key: 'medias_info',
  29. relatedModel: MediaList
  30. },
  31. { key: 'category' },
  32. {
  33. key: 'category_info',
  34. relatedModel: ContentCategory
  35. },
  36. {
  37. key: 'celebrities',
  38. relatedModel: CelebrityList
  39. },
  40. { key: 'hashtags' },
  41. {
  42. key: 'hashtags_info',
  43. relatedModel: ContentHashtagList
  44. }
  45. ], {
  46. is_hidden: {
  47. infoKey: 'is_hidden_info',
  48. enumListKey: 'is_hiddenEnums',
  49. enums: [
  50. {
  51. label: 'پنهان',
  52. value: true
  53. },
  54. {
  55. label: 'نمایان',
  56. value: false
  57. }
  58. ]
  59. }
  60. })
  61. if (!this.thumbnail) {
  62. this.thumbnail = '/img/sample-post-thumbnail.jpg'
  63. }
  64. }
  65. }
  66. class ContentList extends Collection {
  67. model () {
  68. return Content
  69. }
  70. }
  71. export { Content, ContentList }