import { DescriptionTemplateStatus } from "@app/core/common/enum/description-template-status"; import { BaseEntityPersist } from "@common/base/base-entity.model"; import { Guid } from "@common/types/guid"; import { DescriptionTemplateType } from "../description-template-type/description-template-type"; export interface DescriptionTemplatePersist extends BaseEntityPersist { label: string; description: string; groupId: Guid; version: string; language: string; type: DescriptionTemplateType; status: DescriptionTemplateStatus; definition: DescriptionTemplateDefinitionPersist; } export interface DescriptionTemplateDefinitionPersist { pages?: DescriptionTemplatePagePersist[]; sections?: DescriptionTemplateSectionPersist[]; } export interface DescriptionTemplatePagePersist { id: Guid; ordinal: number; title: string; } export interface DescriptionTemplateSectionPersist { id: Guid; ordinal: number; defaultVisibility: boolean; multiplicity: boolean; numbering: string; page: string; title: string; description: string; extendedDescription: string; sections?: DescriptionTemplateSectionPersist[]; fieldSets: DescriptionTemplateFieldSetPersist[]; } export interface DescriptionTemplateFieldSetPersist { id: Guid; ordinal: number; numbering: string; title: string; description: string; extendedDescription: string; additionalInformation: string; multiplicity: DescriptionTemplateMultiplicityPersist hasCommentField: boolean; fields: DescriptionTemplateFieldPersist[]; } export interface DescriptionTemplateFieldPersist { id: Guid; ordinal: number; numbering: string; schematics: string[]; defaultValue: string; visibilityRules: DescriptionTemplateRulePersist[]; // validations: DescriptionTemplateFieldValidationType[]; // fieldType: DescriptionTemplateFieldType; includeInExport: boolean; data: DescriptionTemplateBaseFieldDataPersist; } export interface DescriptionTemplateRulePersist { target: string; value: string; } export interface DescriptionTemplateMultiplicityPersist { min: number; max: number; placeholder: string; tableView: boolean; } export interface DescriptionTemplateBaseFieldDataPersist { label: string; }