argos/dmp-frontend/src/app/core/model/description-template/description-template-persis...

226 lines
7.3 KiB
TypeScript

import { DescriptionTemplateFieldAutocompleteType } from "@app/core/common/enum/description-template-field-autocomplete-type";
import { DescriptionTemplateFieldDataExternalDatasetType } from "@app/core/common/enum/description-template-field-data-external-dataset-type";
import { DescriptionTemplateFieldType } from "@app/core/common/enum/description-template-field-type";
import { DescriptionTemplateFieldValidationType } from "@app/core/common/enum/description-template-field-validation-type";
import { DescriptionTemplateStatus } from "@app/core/common/enum/description-template-status";
import { UserDescriptionTemplateRole } from "@app/core/common/enum/user-description-template-role";
import { BaseEntityPersist } from "@common/base/base-entity.model";
import { Guid } from "@common/types/guid";
export interface DescriptionTemplatePersist extends BaseEntityPersist {
label: string;
description: string;
language: string;
type: Guid;
status: DescriptionTemplateStatus;
definition: DescriptionTemplateDefinitionPersist;
users: UserDescriptionTemplatePersist[];
}
export interface UserDescriptionTemplatePersist {
userId?: Guid;
role?: UserDescriptionTemplateRole;
}
export interface DescriptionTemplateDefinitionPersist {
pages?: DescriptionTemplatePagePersist[];
sections?: DescriptionTemplateSectionPersist[];
}
export interface DescriptionTemplatePagePersist {
id: string;
ordinal: number;
title: string;
}
export interface DescriptionTemplateSectionPersist {
id: string;
ordinal: number;
defaultVisibility: boolean;
multiplicity: boolean;
page: string;
title: string;
description: string;
sections?: DescriptionTemplateSectionPersist[];
fieldSets: DescriptionTemplateFieldSetPersist[];
}
export interface DescriptionTemplateFieldSetPersist {
id: string;
ordinal: number;
numbering: string;
title: string;
description: string;
extendedDescription: string;
additionalInformation: string;
multiplicity: DescriptionTemplateMultiplicityPersist;
hasCommentField: boolean;
fields: DescriptionTemplateFieldPersist[];
}
export interface DescriptionTemplateFieldPersist {
id: string;
ordinal: number;
schematics: string[];
defaultValue: string;
visibilityRules: DescriptionTemplateRulePersist[];
validations: DescriptionTemplateFieldValidationType[];
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;
fieldType: DescriptionTemplateFieldType;
}
//
// Field Types
//
export interface DescriptionTemplateAutoCompleteDataPersist extends DescriptionTemplateBaseFieldDataPersist {
multiAutoComplete: boolean;
autoCompleteSingleDataList: DescriptionTemplateAutoCompleteSingleDataPersist[];
}
export interface DescriptionTemplateBooleanDecisionDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateDatasetAutoCompleteDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateDmpAutoCompleteDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateCheckBoxDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateDatePickerDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateExternalDatasetDataPersist extends DescriptionTemplateBaseFieldDataPersist {
multiAutoComplete: boolean;
type: DescriptionTemplateFieldDataExternalDatasetType;
}
export interface DescriptionTemplateFreeTextDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplatePlaceholderAndMultiplicityDataPersist extends DescriptionTemplateBaseFieldDataPersist {
multiAutoComplete: boolean;
}
export interface DescriptionTemplateLicenseDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateOrganizationDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplatePublicationDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateRadioBoxDataPersist extends DescriptionTemplateBaseFieldDataPersist {
options: DescriptionTemplateRadioBoxOptionPersist[];
}
export interface DescriptionTemplateRegistryDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateResearcherAutoCompleteDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateResearcherDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateRichTextAreaDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateServiceDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateTagDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateTaxonomyDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateTextAreaDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateUploadDataPersist extends DescriptionTemplateBaseFieldDataPersist {
types: DescriptionTemplateUploadOptionPersist[];
}
export interface DescriptionTemplateValidationDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateDatasetIdentifierDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateCurrencyDataPersist extends DescriptionTemplateBaseFieldDataPersist {
}
export interface DescriptionTemplateSelectDataPersist extends DescriptionTemplateBaseFieldDataPersist {
options: DescriptionTemplateComboBoxOptionPersist[];
multiList: boolean;
}
export interface DescriptionTemplateDataRepositoryDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplateJournalRepositoryDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
export interface DescriptionTemplatePublicationRepositoryDataPersist extends DescriptionTemplatePlaceholderAndMultiplicityDataPersist {
}
//
// Others
//
export interface DescriptionTemplateAutoCompleteSingleDataPersist {
autocompleteType: DescriptionTemplateFieldAutocompleteType;
url: string;
autoCompleteOptions: DescriptionTemplateComboBoxOptionPersist;
optionsRoot: string;
hasAuth: boolean;
auth: DescriptionTemplateAuthAutoCompleteDataPersist
method: string;
}
export interface DescriptionTemplateAuthAutoCompleteDataPersist {
url: string;
method: string;
body: string;
path: string;
type: string;
}
export interface DescriptionTemplateComboBoxOptionPersist {
label: string;
value: string;
source: string;
uri: string;
}
export interface DescriptionTemplateRadioBoxOptionPersist {
label: string;
value: string;
}
export interface DescriptionTemplateUploadOptionPersist {
label: string;
value: string;
}