import * as IShared from '../../../shared/interface'; import { Task, TaskMessage, DocumentHeader, File } from '../../../shared/entities/stock'; export type Entity = Task; export declare const Route = "task"; export declare const UpperName = "Task"; export declare const LowerName: string; export declare const ITaskStatusDataTypeEnum: { Normal: 'Normal'; Urgent: 'Urgent'; Problem: 'Problem'; }; export type ITaskStatusDataType = (typeof ITaskStatusDataTypeEnum)[keyof typeof ITaskStatusDataTypeEnum]; export declare const taskStatusDataType: string[]; export type ICreateRequest = { task: string; }; export type ICreateFromDossierRequest = { from: string; to: string | null; task: string; }; export type IUpdateRequest = { from?: string; to?: string | null; task?: string; read?: boolean; finished?: boolean; archived?: boolean; status?: ITaskStatusDataType; future_date?: Date | null; }; export declare const IHistoryStatusDataTypeEnum: { created_task: 'created_task'; updated_task: 'updated_task'; created_message: 'created_message'; updated_message: 'updated_message'; deleted_message: 'deleted_message'; }; export type IHistoryStatusDataType = (typeof IHistoryStatusDataTypeEnum)[keyof typeof IHistoryStatusDataTypeEnum]; export declare const historyStatusDataType: string[]; export interface ITaskHistoryData { status: IHistoryStatusDataType | null; data: string; changedAt: Date; changedBy: string; } export interface ITaskHistoryResponse { status: IHistoryStatusDataType | null; data: string; changedAt: Date; changedBy: string; } export type IFindResponse = Omit & { task_read: boolean; }; export type ITaskFileType = Pick & { id?: string; }; export interface IFindWithMessagesResponse extends Entity { messages: TaskMessage[]; document_headers: Pick[]; task_read: boolean; task_files: ITaskFileType[]; } export type IFindTasksRequest = { archived?: boolean; }; export type IFindByOwnerResponse = { task_id: string; from: string; to: string | null; task: string; created_at: Date; task_read: boolean; number: number; status: ITaskStatusDataType; future_date: Date | null; }; export interface IRepository { find(selector: IFindTasksRequest): Promise; findWithMessages(id: IShared.IFindByIdRequest): Promise; create(data: ICreateRequest): Promise; createFromDossier(data: ICreateFromDossierRequest): Promise; update(selector: IShared.IFindByIdRequest, data: IUpdateRequest): Promise; delete(selector: IShared.IFindByIdRequest): Promise; findByOwnerId: (selector: IShared.IFindByOwnerIdRequest) => Promise; } export type IController = IShared.IEntityWithUserToken;