123 lines
3.2 KiB
TypeScript
123 lines
3.2 KiB
TypeScript
import { DmpBlueprintFieldCategory } from "@app/core/common/enum/dmp-blueprint-field-category";
|
|
import { DmpBlueprintExtraFieldDataType } from "@app/core/common/enum/dmp-blueprint-field-type";
|
|
import { DmpBlueprintStatus } from "@app/core/common/enum/dmp-blueprint-status";
|
|
import { DmpBlueprintSystemFieldType } from "@app/core/common/enum/dmp-blueprint-system-field-type";
|
|
import { BaseEntity, BaseEntityPersist } from "@common/base/base-entity.model";
|
|
import { Guid } from "@common/types/guid";
|
|
import { ReferenceType } from "../reference-type/reference-type";
|
|
import { PrefillingSource } from "../prefilling-source/prefilling-source";
|
|
|
|
|
|
export interface DmpBlueprint extends BaseEntity {
|
|
label: string;
|
|
definition: DmpBlueprintDefinition;
|
|
status: DmpBlueprintStatus;
|
|
version: number;
|
|
groupId: Guid;
|
|
}
|
|
|
|
export interface DmpBlueprintDefinition {
|
|
sections?: DmpBlueprintDefinitionSection[];
|
|
}
|
|
|
|
|
|
export interface DmpBlueprintDefinitionSection {
|
|
id: Guid;
|
|
label: string;
|
|
description: string;
|
|
ordinal: number;
|
|
fields: FieldInSection[];
|
|
hasTemplates: boolean;
|
|
descriptionTemplates?: DescriptionTemplatesInSection[];
|
|
prefillingSources: PrefillingSource[];
|
|
}
|
|
|
|
export interface DescriptionTemplatesInSection {
|
|
descriptionTemplateGroupId: Guid;
|
|
label: string;
|
|
minMultiplicity: number;
|
|
maxMultiplicity: number;
|
|
}
|
|
|
|
export interface FieldInSection {
|
|
id: Guid;
|
|
category: DmpBlueprintFieldCategory;
|
|
label: string;
|
|
placeholder: string;
|
|
description: string;
|
|
semantics: string[];
|
|
required: boolean;
|
|
ordinal: number;
|
|
}
|
|
|
|
export interface SystemFieldInSection extends FieldInSection {
|
|
systemFieldType: DmpBlueprintSystemFieldType;
|
|
}
|
|
|
|
export interface ExtraFieldInSection extends FieldInSection {
|
|
dataType: DmpBlueprintExtraFieldDataType;
|
|
}
|
|
|
|
export interface ReferenceTypeFieldInSection extends FieldInSection {
|
|
referenceType: ReferenceType;
|
|
}
|
|
|
|
//
|
|
// Persist
|
|
//
|
|
export interface DmpBlueprintPersist extends BaseEntityPersist {
|
|
label: string;
|
|
definition: DmpBlueprintDefinitionPersist;
|
|
status: DmpBlueprintStatus;
|
|
}
|
|
|
|
export interface NewVersionDmpBlueprintPersist {
|
|
label: string;
|
|
definition: DmpBlueprintDefinitionPersist;
|
|
status: DmpBlueprintStatus;
|
|
}
|
|
|
|
export interface DmpBlueprintDefinitionPersist {
|
|
sections?: DmpBlueprintDefinitionSectionPersist[];
|
|
}
|
|
|
|
export interface DmpBlueprintDefinitionSectionPersist {
|
|
id: Guid;
|
|
label: string;
|
|
description: string;
|
|
ordinal: number;
|
|
fields: FieldInSectionPersist[];
|
|
hasTemplates: boolean;
|
|
descriptionTemplates?: DescriptionTemplatesInSectionPersist[];
|
|
prefillingSourcesIds: Guid[];
|
|
}
|
|
|
|
export interface DescriptionTemplatesInSectionPersist {
|
|
descriptionTemplateGroupId: Guid;
|
|
label: string;
|
|
minMultiplicity: number;
|
|
maxMultiplicity: number;
|
|
}
|
|
|
|
export interface FieldInSectionPersist {
|
|
id: Guid;
|
|
category: DmpBlueprintFieldCategory;
|
|
label: string;
|
|
placeholder: string;
|
|
description: string;
|
|
semantics: string[];
|
|
required: boolean;
|
|
ordinal: number;
|
|
}
|
|
|
|
export interface SystemFieldInSectionPersist extends FieldInSectionPersist {
|
|
systemFieldType: DmpBlueprintSystemFieldType;
|
|
}
|
|
|
|
export interface ExtraFieldInSectionPersist extends FieldInSectionPersist {
|
|
dataType: DmpBlueprintExtraFieldDataType;
|
|
}
|
|
|
|
export interface ReferenceTypeFieldInSectionPersist extends FieldInSectionPersist {
|
|
referenceTypeId: Guid;
|
|
} |