import dayjs from 'dayjs/esm';
import { IPeriod } from 'app/entities/period/period.model';
import { IOrganization } from 'app/entities/organization/organization.model';
import { UploadType } from 'app/entities/enumerations/upload-type.model';
import { UploadStatus } from 'app/entities/enumerations/upload-status.model';
import { IActivityDomain } from 'app/entities/activity/activity.model';

export interface IInputDataUpload extends IActivityDomain {
  title?: string | null;
  dataFile?: string | null;
  dataFileContentType?: string | null;
  uploadFileName?: string | null;
  diskFileName?: string | null;
  type?: keyof typeof UploadType | null;
  state?: keyof typeof UploadStatus | null;
  comments?: string | null;
  creationDate?: dayjs.Dayjs | null;
  creationUsername?: string | null;
  period?: Pick<IPeriod, 'id' | 'name'> | null;
  owner?: Pick<IOrganization, 'id' | 'name'> | null;
}

export type NewInputDataUpload = Omit<IInputDataUpload, 'id'> & { id: null };
