argos/dmp-frontend/src/app/core/model/dmp/dmp.ts

112 lines
2.7 KiB
TypeScript
Raw Normal View History

2023-12-06 22:10:01 +01:00
import { DmpAccessType } from '@app/core/common/enum/dmp-access-type';
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';
2023-12-29 16:04:16 +01:00
import { 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 {
label: string;
version: number;
status: DmpStatus;
2023-11-29 14:26:40 +01:00
versionStatus: DmpVersionStatus;
properties: string;
2023-10-27 17:56:19 +02:00
groupId: String;
2023-11-29 14:26:40 +01:00
description: String;
2023-10-27 17:56:19 +02:00
finalizedAt: Date;
2023-11-29 14:26:40 +01:00
publishedAt: Date;
creator: User;
accessType: DmpAccessType;
2023-10-27 17:56:19 +02:00
blueprint: DmpBlueprint;
2023-11-29 14:26:40 +01:00
language: String;
publicAfter: Date;
dmpReferences: DmpReference[];
dmpUsers: DmpUser[];
descriptions: Description[];
2023-12-28 16:18:49 +01:00
dmpDescriptionTemplates: DmpDescriptionTemplate[];
2023-12-04 16:56:12 +01:00
entityDois: EntityDoi[];
}
2023-11-29 14:26:40 +01:00
export interface DmpUser extends BaseEntity {
dmp: Dmp;
user: User;
role: DmpUserRole;
}
export interface DmpDescriptionTemplate extends BaseEntity {
dmp: Dmp;
currentDescriptionTemplate: DescriptionTemplate; //TODO: what is this?
descriptionTemplates: DescriptionTemplate[]; //TODO: why it is array?
descriptionTemplateGroupId: Guid;
sectionId: Guid;
}
//
// Persist
//
export interface DmpPersist extends BaseEntityPersist {
label: string;
status: DmpStatus;
2023-11-29 14:26:40 +01:00
properties: string;
description: String;
language: String;
2023-12-28 16:18:49 +01:00
blueprint: Guid;
2023-11-29 14:26:40 +01:00
accessType: DmpAccessType;
references: DmpReferencePersist[];
descriptionTemplates: DmpDescriptionTemplatePersist[];
}
export interface DmpReferencePersist extends BaseEntityPersist {
2023-12-28 16:18:49 +01:00
reference?: ReferencePersist;
data?: string;
2023-11-29 14:26:40 +01:00
}
export interface DmpDescriptionTemplatePersist extends BaseEntityPersist {
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;
}