import { ProcessingFileStatus, WorkflowFileStatus } from '../files';
import { List } from '@iqser/common-ui/lib/utils';
import { DossierTemplateStatus } from './constants';

interface Counter {
    readonly count: number;
}

export interface CountByStatus extends Counter {
    readonly statusId: string;
}

export interface CountPerProcessingStatus extends Counter {
    readonly processingStatus: ProcessingFileStatus;
}

export interface CountPerWorkflowStatus extends Counter {
    readonly workflowStatus: WorkflowFileStatus;
}

export interface IDashboardStats {
    readonly dossierCountByStatus: List<CountByStatus>;
    readonly dossierTemplateId: string;
    readonly dossiersInTemplate: List<string>;
    readonly fileCountPerProcessingStatus: List<CountPerProcessingStatus>;
    readonly fileCountPerWorkflowStatus: List<CountPerWorkflowStatus>;
    readonly name: string;
    readonly numberOfActiveDossiers: number;
    readonly numberOfActiveFiles: number;
    readonly numberOfArchivedDossiers: number;
    readonly numberOfDeletedDossiers: number;
    readonly numberOfExcludedPages: number;
    readonly numberOfPages: number;
    readonly numberOfPeople: number;
    readonly numberOfSoftDeletedFiles: number;
    readonly dossierTemplateStatus: DossierTemplateStatus;
}
