Files
bigcapital/packages/server/src/interfaces/Tasks.ts
2023-02-03 11:57:50 +02:00

79 lines
1.8 KiB
TypeScript

import { Knex } from 'knex';
import { ProjectTaskChargeType } from '@/services/Projects/Tasks/constants';
export interface IProjectTask {
id?: number;
name: string;
chargeType: string;
estimateHours: number;
actualHours: number;
invoicedHours: number;
billableHours: number;
projectId: number;
billableAmount?: number;
createdAt?: Date|string;
}
export interface BaseTaskDTO {
name: string;
rate: number;
chargeType: ProjectTaskChargeType;
estimateHours: number;
}
export interface ICreateTaskDTO extends BaseTaskDTO {}
export interface IEditTaskDTO extends BaseTaskDTO {}
export interface IProjectTaskCreatePOJO extends IProjectTask {}
export interface IProjectTaskEditPOJO extends IProjectTask {}
export interface IProjectTaskGetPOJO extends IProjectTask {}
export interface ITaskCreateEventPayload {
tenantId: number;
taskDTO: ICreateTaskDTO;
}
export interface ITaskCreatedEventPayload {
tenantId: number;
taskDTO: ICreateTaskDTO;
task: any;
trx: Knex.Transaction;
}
export interface ITaskCreatingEventPayload {
tenantId: number;
taskDTO: ICreateTaskDTO;
trx: Knex.Transaction;
}
export interface ITaskDeleteEventPayload {
tenantId: number;
taskId: number;
}
export interface ITaskDeletingEventPayload {
tenantId: number;
oldTask: IProjectTask;
trx: Knex.Transaction;
}
export interface ITaskDeletedEventPayload {
tenantId: number;
oldTask: IProjectTask;
task: IProjectTask;
trx: Knex.Transaction;
}
export interface ITaskEditEventPayload {
tenantId: number;
taskId: number;
taskDTO: IEditTaskDTO;
}
export interface ITaskEditingEventPayload {
tenantId: number;
oldTask: IProjectTask;
taskDTO: IEditTaskDTO;
trx: Knex.Transaction;
}
export interface ITaskEditedEventPayload {
tenantId: number;
oldTask: IProjectTask;
task: IProjectTask;
taskDTO: IEditTaskDTO;
trx: Knex.Transaction;
}