123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- import {
- BaseModel,
- BooleanField,
- IntField,
- Model,
- ManyToOne,
- OneToMany,
- CustomField,
- EnumField,
- StringField,
- } from 'warthog';
- import { Membership } from '../membership/membership.model';
- import { CuratorGroup } from '../curator-group/curator-group.model';
- import { ChannelCategory } from '../channel-category/channel-category.model';
- import { DataObject } from '../data-object/data-object.model';
- import { Language } from '../language/language.model';
- import { Video } from '../video/video.model';
- import { AssetAvailability } from '../enums/enums';
- export { AssetAvailability };
- @Model({ api: {} })
- export class Channel extends BaseModel {
- @ManyToOne(() => Membership, (param: Membership) => param.channels, {
- skipGraphQLField: true,
- nullable: true,
- cascade: ["insert", "update"],
- modelName: 'Channel',
- relModelName: 'Membership',
- propertyName: 'ownerMember',
- })
- ownerMember?: Membership;
- @ManyToOne(() => CuratorGroup, (param: CuratorGroup) => param.channels, {
- skipGraphQLField: true,
- nullable: true,
- cascade: ["insert", "update"],
- modelName: 'Channel',
- relModelName: 'CuratorGroup',
- propertyName: 'ownerCuratorGroup',
- })
- ownerCuratorGroup?: CuratorGroup;
- @ManyToOne(() => ChannelCategory, (param: ChannelCategory) => param.channels, {
- skipGraphQLField: true,
- nullable: true,
- cascade: ["insert", "update"],
- modelName: 'Channel',
- relModelName: 'ChannelCategory',
- propertyName: 'category',
- })
- category?: ChannelCategory;
- @StringField({
- nullable: true,
- description: `Reward account where revenue is sent if set.`,
- })
- rewardAccount?: string;
- @StringField({
- nullable: true,
- description: `The title of the Channel`,
- })
- title?: string;
- @StringField({
- nullable: true,
- description: `The description of a Channel`,
- })
- description?: string;
- @ManyToOne(() => DataObject, (param: DataObject) => param.channelcoverPhotoDataObject, {
- skipGraphQLField: true,
- nullable: true,
- cascade: ["insert", "update"],
- modelName: 'Channel',
- relModelName: 'DataObject',
- propertyName: 'coverPhotoDataObject',
- })
- coverPhotoDataObject?: DataObject;
- @CustomField({
- db: { type: 'text', array: true },
- api: { type: 'string', description: `URLs where the asset content can be accessed (if any)` },
- })
- coverPhotoUrls!: string[];
- @EnumField('AssetAvailability', AssetAvailability, {
- description: `Availability meta information`,
- })
- coverPhotoAvailability!: AssetAvailability;
- @ManyToOne(() => DataObject, (param: DataObject) => param.channelavatarPhotoDataObject, {
- skipGraphQLField: true,
- nullable: true,
- cascade: ["insert", "update"],
- modelName: 'Channel',
- relModelName: 'DataObject',
- propertyName: 'avatarPhotoDataObject',
- })
- avatarPhotoDataObject?: DataObject;
- @CustomField({
- db: { type: 'text', array: true },
- api: { type: 'string', description: `URLs where the asset content can be accessed (if any)` },
- })
- avatarPhotoUrls!: string[];
- @EnumField('AssetAvailability', AssetAvailability, {
- description: `Availability meta information`,
- })
- avatarPhotoAvailability!: AssetAvailability;
- @BooleanField({
- nullable: true,
- description: `Flag signaling whether a channel is public.`,
- })
- isPublic?: boolean;
- @BooleanField({
- description: `Flag signaling whether a channel is censored.`,
- })
- isCensored!: boolean;
- @ManyToOne(() => Language, (param: Language) => param.channellanguage, {
- skipGraphQLField: true,
- nullable: true,
- cascade: ["insert", "update"],
- modelName: 'Channel',
- relModelName: 'Language',
- propertyName: 'language',
- })
- language?: Language;
- @OneToMany(() => Video, (param: Video) => param.channel, {
- cascade: ["insert", "update"],
- modelName: 'Channel',
- relModelName: 'Video',
- propertyName: 'videos',
- })
- videos?: Video[];
- @IntField({})
- createdInBlock!: number;
- constructor(init?: Partial<Channel>) {
- super();
- Object.assign(this, init);
- }
- }
|