import { SharedModels } from '../shared/shared-models'; import { PreviewContracts } from '../../contracts'; export namespace PreviewModels { export interface IPreviewSpace { id: string; } export interface IPreviewContentType { id: string; } export interface IPreviewUrlPattern { space: IPreviewSpace | null; urlPattern: string; } export interface IPreviewUrlPatterns { contentType: IPreviewContentType; urlPatterns: IPreviewUrlPattern[]; } export interface IPreviewSpaceDomain { space: IPreviewSpace; domain: string; } export class PreviewConfiguration implements SharedModels.IBaseModel { public spaceDomains: IPreviewSpaceDomain[]; public previewUrlPatterns: IPreviewUrlPatterns[]; public _raw: PreviewContracts.IPreviewConfigurationContract; constructor(data: { spaceDomains: IPreviewSpaceDomain[]; previewUrlPatterns: IPreviewUrlPatterns[]; _raw: PreviewContracts.IPreviewConfigurationContract; }) { this.spaceDomains = data.spaceDomains; this.previewUrlPatterns = data.previewUrlPatterns; this._raw = data._raw; } } export class LivePreviewConfiguration implements SharedModels.IBaseModel { public status: string; public _raw: PreviewContracts.ILivePreviewConfigurationContract; constructor(data: { status: string; _raw: PreviewContracts.ILivePreviewConfigurationContract; }) { this.status = data.status; this._raw = data._raw; } } export interface IChangeLivePreviewConfigurationData { status: string; } export interface IModifyPreviewConfigurationData { space_domains: { space: { id?: string; codename?: string; }; domain: string; }[]; preview_url_patterns: { content_type: { id?: string; codename?: string; external_id?: string; }; url_patterns: { space: null | { id?: string; codename?: string; }; url_pattern: string; }[]; }[]; } }