import { List } from '@iqser/common-ui/lib/utils';
import { DownloadFileType } from '../shared';
import { DossierTemplateStatus } from './constants';

export interface IDossierTemplate {
    /**
     * The userId of the user who created this DossierTemplate. Set by the system.
     */
    readonly createdBy: string;
    /**
     * The date when this dossierTemplate was created. Set by System on create.
     */
    readonly dateAdded: string;
    /**
     * The date when this dossierTemplate was last modified. Set by System on create.
     */
    readonly dateModified: string;
    /**
     * The description of this dossierTemplate
     */
    readonly description?: string;
    /**
     * The Rule Set Id. Generated by the system on create.
     */
    readonly dossierTemplateId: string;
    /**
     * Download File Types for this dossierTemplate's dossiers submission package.
     */
    readonly downloadFileTypes: List<DownloadFileType>;
    /**
     * The userId of the user who last modified this DossierTemplate. Set by the system.
     */
    readonly modifiedBy?: string;
    /**
     * The name of this dossierTemplate. Must be set on create / update requests
     */
    readonly name: string;
    /**
     * Report File Types for this dossierTemplate's dossiers submission package.
     */
    readonly reportTemplateIds?: List;
    /**
     * Validity of start this dossierTemplate.
     */
    readonly validFrom?: string;
    /**
     * Validity of end this dossierTemplate.
     */
    readonly validTo?: string;
    readonly dossierTemplateStatus: DossierTemplateStatus;
    /**
     * Hidden text is invisible to human readers but can be detected and read by software and machines
     */
    readonly keepHiddenText: boolean;
    /**
     * Images in documents might contain additional information as metadata
     */
    readonly keepImageMetadata: boolean;
    /**
     * Overlapping elements in the document can potentially contain hidden sensitive information
     */
    readonly keepOverlappingObjects: boolean;
    readonly applyDictionaryUpdatesToAllDossiersByDefault: boolean;
    readonly ocrByDefault: boolean;
    readonly removeWatermark: boolean;
}
