class Channel extends VendureEntity { constructor(input?: DeepPartial<Channel>) @Column({ unique: true }) code: string; @Column({ unique: true }) token: string; @Column({ default: '', nullable: true }) description: string; @Index() @ManyToOne(type => Seller, seller => seller.channels) seller?: Seller; @EntityId({ nullable: true }) sellerId?: ID; @Column('varchar') defaultLanguageCode: LanguageCode; @Column({ type: 'simple-array', nullable: true }) availableLanguageCodes: LanguageCode[]; @Index() @ManyToOne(type => Zone, zone => zone.defaultTaxZoneChannels) defaultTaxZone: Zone; @Index() @ManyToOne(type => Zone, zone => zone.defaultShippingZoneChannels) defaultShippingZone: Zone; @Column('varchar') defaultCurrencyCode: CurrencyCode; @Column({ type: 'simple-array', nullable: true }) availableCurrencyCodes: CurrencyCode[]; @Column({ default: true }) trackInventory: boolean; @Column({ default: 0 }) outOfStockThreshold: number; @Column(type => CustomChannelFields) customFields: CustomChannelFields; @Column() pricesIncludeTax: boolean; @ManyToMany(type => Product, product => product.channels, { onDelete: 'CASCADE' }) products: Product[]; @ManyToMany(type => ProductVariant, productVariant => productVariant.channels, { onDelete: 'CASCADE' }) productVariants: ProductVariant[]; @ManyToMany(type => FacetValue, facetValue => facetValue.channels, { onDelete: 'CASCADE' }) facetValues: FacetValue[]; @ManyToMany(type => Facet, facet => facet.channels, { onDelete: 'CASCADE' }) facets: Facet[]; @ManyToMany(type => ProductOptionGroup, pog => pog.channels, { onDelete: 'CASCADE' }) productOptionGroups: ProductOptionGroup[]; @ManyToMany(type => ProductOption, po => po.channels, { onDelete: 'CASCADE' }) productOptions: ProductOption[]; @ManyToMany(type => Collection, collection => collection.channels, { onDelete: 'CASCADE' }) collections: Collection[]; @ManyToMany(type => Promotion, promotion => promotion.channels, { onDelete: 'CASCADE' }) promotions: Promotion[]; @ManyToMany(type => PaymentMethod, paymentMethod => paymentMethod.channels, { onDelete: 'CASCADE' }) paymentMethods: PaymentMethod[]; @ManyToMany(type => ShippingMethod, shippingMethod => shippingMethod.channels, { onDelete: 'CASCADE' }) shippingMethods: ShippingMethod[]; @ManyToMany(type => Customer, customer => customer.channels, { onDelete: 'CASCADE' }) customers: Customer[]; @ManyToMany(type => Role, role => role.channels, { onDelete: 'CASCADE' }) roles: Role[]; @ManyToMany(type => StockLocation, stockLocation => stockLocation.channels, { onDelete: 'CASCADE' }) stockLocations: StockLocation[]; @ManyToMany(type => ApiKey, apiKey => apiKey.channels, { onDelete: 'CASCADE' }) apiKeys: ApiKey[];}