export interface HrLeaveType {
  id: number;
  company_id: number;
  name: string;
  name_en: string;
  name_ar: string;
  code: string;
  days_allowed: number;
  is_paid: boolean;
  requires_approval: boolean;
  carry_forward: boolean;
  max_carry_forward_days: number | null;
  gender: string | null;
  description: string | null;
  status: string;
  created_at: string;
  updated_at: string;
}

export interface CreateHrLeaveType {
  name_ar: string;
  name_en?: string;
  days_allowed: number;
  is_paid?: boolean;
  requires_approval?: boolean;
  carry_forward?: boolean;
  max_carry_forward_days?: number | null;
  gender?: string | null;
  description?: string | null;
  status?: string;
}

export interface UpdateHrLeaveType extends Partial<CreateHrLeaveType> {}

export interface HrLeaveRequest {
  id: number;
  company_id: number;
  employee_id: number;
  leave_type_id: number;
  start_date: string;
  end_date: string;
  days: number;
  reason: string | null;
  status: string;
  approved_by: number | null;
  approved_at: string | null;
  rejection_reason: string | null;
  employee?: any;
  leave_type?: any;
  approver?: any;
  created_at: string;
  updated_at: string;
}

export interface CreateHrLeaveRequest {
  employee_id: number;
  leave_type_id: number;
  start_date: string;
  end_date: string;
  reason?: string | null;
}

export interface UpdateHrLeaveRequest extends Partial<CreateHrLeaveRequest> {}
