import { Status } from "../../common/enum/status";
import { DmpProfile, DmpProfileDefinition } from "../dmp-profile/dmp-profile";
import { OrganizationModel } from "../organisation/organization";
import { GrantListingModel } from "../grant/grant-listing";
import { ResearcherModel } from "../researcher/researcher";
import { UserModel } from "../user/user";
import { DmpDynamicField } from "./dmp-dynamic-field";
import { UserInfoListingModel } from "../user/user-info-listing";
import { DatasetModel } from "../dataset/dataset";
import { ProjectModel } from "../project/project";
import { FunderModel } from "../funder/funder";
import { DmpStatus } from '@app/core/common/enum/dmp-status';
import { ExtraPropertiesFormModel } from '@app/ui/dmp/editor/general-tab/extra-properties-form.model';
import { DatasetWizardModel } from '../dataset/dataset-wizard';

export interface DmpModel {
	id: string;
	label: string;
	groupId: String;
	profile: String;
	version: number;
	status: DmpStatus;
	lockable: boolean;
	description: String;
	grant: GrantListingModel;
	project: ProjectModel;
	funder: FunderModel;
	datasets: DatasetWizardModel[];
	datasetsToBeFinalized: string[];
	profiles: DmpProfile[];
	organisations: OrganizationModel[];
	researchers: ResearcherModel[];
	associatedUsers: UserModel[];
	users: UserInfoListingModel[];
	creator: UserModel;
	definition: DmpProfileDefinition;
	dynamicFields: Array<DmpDynamicField>;
	modified: Date;
	extraProperties: Map<String, any>;
	language: String;
}
