| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import { Collection, Model } from 'js-abstract-model'
- import { CelebrityList } from 'src/models/Celebrity.js'
- import { MediaHashtagList } from 'src/models/MediaHashtag.js'
- import { MediaCategory } from 'src/models/MediaCategory.js'
- class Media extends Model {
- constructor (data) {
- super(data, [
- { key: 'id' },
- { key: 'title' },
- { key: 'type' }, // VIDEO - TEXT - SOUND - IMAGE
- { key: 'source_type' }, // CONTENT - SETTING
- { key: 'url' },
- { key: 'iframe_code' },
- { key: 'script_code' },
- { key: 'is_live_streaming' },
- { key: 'category' },
- {
- key: 'category_info',
- relatedModel: MediaCategory
- },
- { key: 'description' },
- {
- key: 'celebrities',
- relatedModel: CelebrityList
- },
- { key: 'hashtags' },
- {
- key: 'hashtags_info',
- relatedModel: MediaHashtagList
- },
- { key: 'file' }
- ], {
- type: {
- infoKey: 'type_info',
- enumListKey: 'typeEnums',
- enums: [
- {
- label: 'ویدیو',
- value: 'VIDEO'
- },
- // {
- // label: 'متن',
- // value: 'TEXT'
- // },
- {
- label: 'صوت',
- value: 'SOUND'
- },
- {
- label: 'تصویر',
- value: 'IMAGE'
- },
- {
- label: 'سند',
- value: 'DOCUMENT'
- },
- {
- label: 'سایر',
- value: 'OTHER'
- }
- ]
- },
- source_type: {
- infoKey: 'source_type_info',
- enumListKey: 'source_typeEnums',
- enums: [
- {
- label: 'صورتحساب',
- value: 'INVOICE'
- },
- {
- label: 'محتوا',
- value: 'CONTENT'
- },
- {
- label: 'کلاس',
- value: 'CLASSROOM'
- },
- {
- label: 'جلسه',
- value: 'SESSION'
- },
- {
- label: 'تمپلیت جلسه',
- value: 'SESSION_TEMPLATE'
- },
- {
- label: 'پروژه',
- value: 'PROJECT'
- },
- {
- label: 'پست',
- value: 'POST'
- },
- {
- label: 'تنظیمات',
- value: 'SETTING'
- },
- {
- label: 'رویداد',
- value: 'EVENT'
- },
- {
- label: 'محصول',
- value: 'PRODUCT'
- }
- ]
- }
- })
- }
- }
- class MediaList extends Collection {
- model () {
- return Media
- }
- getType (type) {
- return this.list.filter(item => item.type === type)
- }
- }
- export { Media, MediaList }
|