2023-12-06 22:10:01 +01:00
|
|
|
import { DmpAccessType } from '@app/core/common/enum/dmp-access-type';
|
2023-10-20 17:01:09 +02:00
|
|
|
import { DmpStatus } from '@app/core/common/enum/dmp-status';
|
2023-12-06 22:10:01 +01:00
|
|
|
import { DmpUserRole } from '@app/core/common/enum/dmp-user-role';
|
|
|
|
import { DmpVersionStatus } from '@app/core/common/enum/dmp-version-status';
|
|
|
|
import { BaseEntity, BaseEntityPersist } from '@common/base/base-entity.model';
|
|
|
|
import { Guid } from '@common/types/guid';
|
|
|
|
import { DescriptionTemplate } from '../description-template/description-template';
|
|
|
|
import { Description } from '../description/description';
|
2023-12-29 16:04:16 +01:00
|
|
|
import { DmpBlueprint } from '../dmp-blueprint/dmp-blueprint';
|
2023-12-06 22:10:01 +01:00
|
|
|
import { EntityDoi } from '../entity-doi/entity-doi';
|
2023-12-28 16:18:49 +01:00
|
|
|
import { ReferencePersist } from '../reference/reference';
|
2024-02-01 13:42:23 +01:00
|
|
|
import { DmpAssociatedUser, User } from "../user/user";
|
2023-12-28 16:18:49 +01:00
|
|
|
import { DmpReference } from './dmp-reference';
|
2019-01-18 18:03:45 +01:00
|
|
|
|
2023-10-27 17:56:19 +02:00
|
|
|
export interface Dmp extends BaseEntity {
|
2024-01-18 13:23:20 +01:00
|
|
|
label?: string;
|
|
|
|
version?: number;
|
|
|
|
status?: DmpStatus;
|
|
|
|
versionStatus?: DmpVersionStatus;
|
|
|
|
properties?: DmpProperties;
|
|
|
|
groupId?: String;
|
|
|
|
description?: String;
|
|
|
|
finalizedAt?: Date;
|
|
|
|
publishedAt?: Date;
|
|
|
|
creator?: User;
|
|
|
|
accessType?: DmpAccessType;
|
|
|
|
blueprint?: DmpBlueprint;
|
|
|
|
language?: String;
|
|
|
|
publicAfter?: Date;
|
|
|
|
dmpReferences?: DmpReference[];
|
|
|
|
dmpUsers?: DmpUser[];
|
|
|
|
descriptions?: Description[];
|
|
|
|
dmpDescriptionTemplates?: DmpDescriptionTemplate[];
|
|
|
|
entityDois?: EntityDoi[];
|
2023-10-27 19:10:21 +02:00
|
|
|
}
|
|
|
|
|
2024-01-15 17:47:34 +01:00
|
|
|
export interface DmpProperties {
|
|
|
|
dmpBlueprintValues: DmpBlueprintValue[];
|
|
|
|
contacts: DmpContact[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpBlueprintValue {
|
|
|
|
fieldId: Guid;
|
|
|
|
fieldValue: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpContact {
|
2024-02-01 13:42:23 +01:00
|
|
|
user?: DmpAssociatedUser;
|
2024-01-15 17:47:34 +01:00
|
|
|
firstName: string;
|
|
|
|
lastName: string;
|
|
|
|
email: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-11-29 14:26:40 +01:00
|
|
|
export interface DmpUser extends BaseEntity {
|
|
|
|
dmp: Dmp;
|
|
|
|
user: User;
|
|
|
|
role: DmpUserRole;
|
|
|
|
}
|
|
|
|
|
2023-12-01 18:18:41 +01:00
|
|
|
export interface DmpDescriptionTemplate extends BaseEntity {
|
2024-01-18 13:23:20 +01:00
|
|
|
dmp?: Dmp;
|
|
|
|
currentDescriptionTemplate?: DescriptionTemplate; //TODO: what is this?
|
|
|
|
descriptionTemplates?: DescriptionTemplate[]; //TODO: why it is array?
|
|
|
|
descriptionTemplateGroupId?: Guid;
|
|
|
|
sectionId?: Guid;
|
2023-12-01 18:18:41 +01:00
|
|
|
}
|
|
|
|
|
2023-10-27 19:10:21 +02:00
|
|
|
//
|
|
|
|
// Persist
|
|
|
|
//
|
|
|
|
export interface DmpPersist extends BaseEntityPersist {
|
|
|
|
label: string;
|
|
|
|
status: DmpStatus;
|
2024-01-15 17:47:34 +01:00
|
|
|
properties: DmpPropertiesPersist;
|
2023-11-29 14:26:40 +01:00
|
|
|
description: String;
|
|
|
|
language: String;
|
2023-12-28 16:18:49 +01:00
|
|
|
blueprint: Guid;
|
2023-11-29 14:26:40 +01:00
|
|
|
accessType: DmpAccessType;
|
|
|
|
descriptionTemplates: DmpDescriptionTemplatePersist[];
|
2024-02-20 16:00:20 +01:00
|
|
|
users: DmpUserPersist[];
|
2023-11-29 14:26:40 +01:00
|
|
|
}
|
|
|
|
|
2024-01-15 17:47:34 +01:00
|
|
|
export interface DmpPropertiesPersist {
|
2024-01-19 17:28:53 +01:00
|
|
|
dmpBlueprintValues: Map<Guid, DmpBlueprintValuePersist>;
|
2024-01-15 17:47:34 +01:00
|
|
|
contacts: DmpContactPersist[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpBlueprintValuePersist {
|
|
|
|
fieldId: Guid;
|
|
|
|
fieldValue: string;
|
|
|
|
references: DmpReferencePersist[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpContactPersist {
|
|
|
|
userId: Guid;
|
|
|
|
firstName: string;
|
|
|
|
lastName: string;
|
|
|
|
email: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpReferencePersist {
|
2023-12-28 16:18:49 +01:00
|
|
|
reference?: ReferencePersist;
|
2024-01-15 17:47:34 +01:00
|
|
|
data?: DmpReferenceDataPersist;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpReferenceDataPersist {
|
|
|
|
blueprintFieldId: Guid;
|
2023-11-29 14:26:40 +01:00
|
|
|
}
|
|
|
|
|
2024-01-18 13:23:20 +01:00
|
|
|
export interface DmpDescriptionTemplatePersist {
|
2023-11-29 14:26:40 +01:00
|
|
|
descriptionTemplateGroupId: Guid;
|
|
|
|
sectionId: Guid;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface CloneDmpPersist {
|
|
|
|
id: Guid;
|
|
|
|
label: string;
|
|
|
|
description: String;
|
|
|
|
descriptions: Guid[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface NewVersionDmpPersist {
|
|
|
|
id: Guid;
|
|
|
|
label: string;
|
|
|
|
description: String;
|
|
|
|
blueprintId: Guid;
|
|
|
|
descriptions: Guid[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpUserPersist {
|
|
|
|
user: Guid;
|
|
|
|
role: DmpUserRole;
|
2023-12-06 22:10:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpUserRemovePersist {
|
|
|
|
id: Guid;
|
|
|
|
dmpId: Guid;
|
|
|
|
role: DmpUserRole;
|
2023-12-29 17:36:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpUserInvitePersist {
|
|
|
|
users: DmpUserInviteTypePersist[];
|
|
|
|
role: DmpUserRole;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface DmpUserInviteTypePersist {
|
|
|
|
userId: Guid;
|
|
|
|
email: string;
|
|
|
|
}
|
|
|
|
|