export interface TimesheetPreAllocVO {
  allocId: string | number;
  allocCode: string;
  monthCode: string;
  standardMonthId?: string | number;
  projectId: string | number;
  projectCode: string;
  projectName: string;
  sourceTotalHours: number;
  allocatedTotalHours: number;
  staffCount: number;
  allocStatus: string;
  remark?: string;
}

export interface PreAllocTarget {
  targetProjectId?: string | number;
  targetProjectCode?: string;
  targetProjectName?: string;
  allocHours?: number;
}

export interface TimesheetPreAllocForm extends BaseEntity {
  allocId?: string | number;
  allocCode?: string;
  monthCode?: string;
  standardMonthId?: string | number;
  projectId?: string | number;
  projectCode?: string;
  projectName?: string;
  sourceTotalHours?: number;
  allocatedTotalHours?: number;
  staffCount?: number;
  allocStatus?: string;
  remark?: string;
  allocItems?: PreAllocTarget[];
}

export interface TimesheetPreAllocQuery extends PageQuery {
  allocCode?: string;
  monthCode?: string;
  projectId?: string | number;
  projectCode?: string;
  projectName?: string;
  allocStatus?: string;
  params?: any;
}

export interface PreAllocDetailVO extends TimesheetPreAllocVO {
  remainingTotalHours: number;
  allocItems: PreAllocTarget[];
}
