import { Branch } from './Branch';
import { EmployeeCategory } from './EmployeeCategory';
import { EmploymentType } from './EmploymentType';
import { OrganisationUnit } from './OrganisationUnit';
import { Position } from './Position';

export interface JobHistory {
  id: string;
  employee_id: string;
  position_id?: string;
  branch_id?: string;
  org_unit_id?: string;
  employee_category_id?: string;
  employment_type_id?: string;
  effective_date: string;
  end_date?: string | null;
  reason?: string;
  remarks?: string;
  created_by?: string;
  created_at: string;
  updated_at: string;
  position?: Position;
  branch?: Branch;
  organisation_unit?: OrganisationUnit;
  employee_category?: EmployeeCategory;
  employment_type?: EmploymentType;
}

export interface CreateJobHistoryPayload {
  id?: string;
  position_id?: string;
  branch_id?: string;
  org_unit_id?: string;
  employee_category_id?: string;
  employment_type_id?: string;
  effective_date: string;
  end_date?: string;
  reason?: string;
  remarks?: string;
}

export type UpdateJobHistoryPayload = {
  employee_id?: string;
} & CreateJobHistoryPayload;

export interface DeleteJobHistoryPayload {
  employee_id: string;
  job_history_id: string;
}

export interface DeleteJobHistoryResponse {
  message: string;
  id?: string;
}
