152 lines
3.7 KiB
TypeScript
152 lines
3.7 KiB
TypeScript
import { DescriptionStatus } from "@app/core/common/enum/description-status";
|
|
import { BaseEntity, BaseEntityPersist } from "@common/base/base-entity.model";
|
|
import { Guid } from "@common/types/guid";
|
|
import { DescriptionTemplate } from "../description-template/description-template";
|
|
import { Dmp, DmpDescriptionTemplate, PublicDmp } from "../dmp/dmp";
|
|
import { Reference, ReferencePersist } from "../reference/reference";
|
|
import { Tag } from "../tag/tag";
|
|
import { User } from "../user/user";
|
|
import { AppPermission } from "@app/core/common/enum/permission.enum";
|
|
|
|
export interface Description extends BaseEntity {
|
|
label?: string;
|
|
properties?: DescriptionPropertyDefinition;
|
|
status?: DescriptionStatus;
|
|
description?: string;
|
|
createdBy?: User;
|
|
finalizedAt?: Date;
|
|
descriptionReferences?: DescriptionReference[];
|
|
descriptionTags?: DescriptionTag[];
|
|
descriptionTemplate?: DescriptionTemplate;
|
|
dmpDescriptionTemplate?: DmpDescriptionTemplate;
|
|
dmp?: Dmp;
|
|
authorizationFlags?: AppPermission[];
|
|
}
|
|
|
|
|
|
export interface DescriptionPropertyDefinition {
|
|
fieldSets: Map<string, DescriptionPropertyDefinitionFieldSet>;
|
|
}
|
|
|
|
export interface DescriptionPropertyDefinitionFieldSet {
|
|
items?: DescriptionPropertyDefinitionFieldSetItem[];
|
|
}
|
|
|
|
export interface DescriptionPropertyDefinitionFieldSetItem {
|
|
fields?: Map<string, DescriptionField>;
|
|
comment?: string;
|
|
ordinal?: number;
|
|
}
|
|
|
|
export interface DescriptionField {
|
|
textValue: string;
|
|
textListValue: string[];
|
|
dateValue: Date;
|
|
externalIdentifier?: DescriptionExternalIdentifier;
|
|
references: Reference[];
|
|
}
|
|
|
|
export interface DescriptionExternalIdentifier {
|
|
identifier: string;
|
|
type: string;
|
|
}
|
|
|
|
export interface DescriptionReference extends BaseEntity {
|
|
description?: Description;
|
|
reference?: Reference;
|
|
data?: DescriptionReferenceData;
|
|
}
|
|
|
|
export interface DescriptionReferenceData {
|
|
fieldId?: string;
|
|
}
|
|
|
|
export interface DescriptionTag extends BaseEntity {
|
|
description?: Description;
|
|
tag?: Tag;
|
|
}
|
|
|
|
//
|
|
// Persist
|
|
//
|
|
export interface DescriptionPersist extends BaseEntityPersist {
|
|
label: string;
|
|
dmpId: Guid;
|
|
dmpDescriptionTemplateId: Guid;
|
|
descriptionTemplateId: Guid;
|
|
status: DescriptionStatus;
|
|
description: string;
|
|
properties: DescriptionPropertyDefinitionPersist;
|
|
tags: string[];
|
|
references: DescriptionReferencePersist[];
|
|
}
|
|
|
|
export interface DescriptionPropertyDefinitionPersist {
|
|
fieldSets: Map<string, DescriptionPropertyDefinitionFieldSetPersist>;
|
|
}
|
|
|
|
export interface DescriptionPropertyDefinitionFieldSetPersist {
|
|
items?: DescriptionPropertyDefinitionFieldSetItemPersist[];
|
|
}
|
|
|
|
export interface DescriptionPropertyDefinitionFieldSetItemPersist {
|
|
fields?: Map<string, DescriptionFieldPersist>;
|
|
comment?: string;
|
|
ordinal?: number;
|
|
}
|
|
|
|
export interface DescriptionFieldPersist {
|
|
textValue: string;
|
|
textListValue: string[];
|
|
dateValue: Date;
|
|
references: ReferencePersist[];
|
|
externalIdentifier?: DescriptionExternalIdentifierPersist;
|
|
}
|
|
|
|
export interface DescriptionExternalIdentifierPersist {
|
|
identifier: string;
|
|
type: string;
|
|
}
|
|
|
|
export interface DescriptionReferencePersist {
|
|
id: Guid;
|
|
reference?: ReferencePersist;
|
|
hash: string;
|
|
}
|
|
|
|
export interface DescriptionStatusPersist {
|
|
id: Guid;
|
|
status: DescriptionStatus;
|
|
hash: string;
|
|
}
|
|
|
|
//
|
|
// Public
|
|
//
|
|
|
|
export interface PublicDescription extends BaseEntity {
|
|
label?: string;
|
|
status?: DescriptionStatus;
|
|
description?: string;
|
|
finalizedAt?: Date;
|
|
descriptionTemplate?: PublicDescriptionTemplate;
|
|
dmpDescriptionTemplate?: PublicDmpDescriptionTemplate;
|
|
dmp?: PublicDmp;
|
|
}
|
|
|
|
export interface PublicDmpDescriptionTemplate {
|
|
id: Guid;
|
|
dmp: PublicDmp;
|
|
}
|
|
|
|
export interface PublicDescriptionTemplate {
|
|
id: Guid;
|
|
label: string;
|
|
description: string;
|
|
}
|
|
export interface DescriptionSectionPermissionResolver {
|
|
dmpId: Guid;
|
|
sectionIds: Guid[];
|
|
permissions: string[];
|
|
}
|