import { Hash } from '@plastichub/core' import { IDiscourseUploadImage } from './discourse' export interface IDiscourseItemCommons { // Discourse forum?: string | boolean // explicit forum title, otherwise #name will be used forumTitle?: string // linked Discourse category forumCategory?: number // Discourse tags forumTags?: string | string[] // Discourse post_id forumPostId?: number // Discourse topic_id forumTopicId?: number // Discourse owner id forumUserId?: number // Discourse owner username forumUserName?: string // last content hash forumPostHash?: string // map of Discourse uploads (internal uri > discourse upload uri) forumUploads?: Hash } export interface IComponentConfig extends IDiscourseItemCommons { //CS-Cart cart_id?: string code: string price?: number cscartCats?: number[] cscartId?: number vendorId?: number //OSR internal version?: string status?: string authors: IAuthor[] // outdated and replaced by (using slug) replaced_by?: string // alternative components (using slug) alternatives?: string[] // internal processing flags flags?: number //related Discourse howto categories howto_categories?: string | string[] //content source language code (ISO) sourceLanguage?: string //last sync timestamp last_sync_ts?: number //OSR public // explicit download url, otherwise default expression download?: boolean // explicit 3d preview url, otherwise default expression edrawings?: string // human readable title (used for Discourse and CSCart) name: string // content visibility features (used for Discourse and CSCart) showDimensions?: boolean showParts?: boolean slug: string score?: number Preview3d?: boolean keywords?: string meta_keywords?: string // kb steps?: any /** * @deprecated */ category: string product_dimensions?: string production?: IProduction } export interface IAuthor { name: string url: string } export interface IProduction { "fusion-folder": string "nc-folder": string cam: IAuthor[] }