export interface HrTrainingProgram {
  id: number;
  company_id: number;
  name: string;
  name_en: string;
  name_ar: string;
  code: string;
  category: string | null;
  description: string | null;
  objectives: string | null;
  duration_hours: number | null;
  max_participants: number | null;
  cost: number | null;
  provider: string | null;
  status: string;
  sessions_count?: number;
  created_at: string;
  updated_at: string;
}

export interface CreateHrTrainingProgram {
  name_ar: string;
  name_en?: string;
  category?: string | null;
  description?: string | null;
  objectives?: string | null;
  duration_hours?: number | null;
  max_participants?: number | null;
  cost?: number | null;
  provider?: string | null;
  status?: string;
}

export interface UpdateHrTrainingProgram extends Partial<CreateHrTrainingProgram> {}

export interface HrTrainingSession {
  id: number;
  company_id: number;
  training_program_id: number;
  code: string;
  title: string;
  title_en: string;
  title_ar: string;
  trainer: string | null;
  location: string | null;
  start_date: string;
  end_date: string;
  start_time: string | null;
  end_time: string | null;
  max_participants: number | null;
  status: string;
  notes: string | null;
  program?: HrTrainingProgram;
  enrollments_count?: number;
  created_at: string;
  updated_at: string;
}

export interface CreateHrTrainingSession {
  training_program_id: number;
  title_ar: string;
  title_en?: string;
  trainer?: string | null;
  location?: string | null;
  start_date: string;
  end_date: string;
  start_time?: string | null;
  end_time?: string | null;
  max_participants?: number | null;
  status?: string;
  notes?: string | null;
}

export interface UpdateHrTrainingSession extends Partial<CreateHrTrainingSession> {}

export interface HrTrainingEnrollment {
  id: number;
  company_id: number;
  training_session_id: number;
  employee_id: number;
  status: string;
  completion_date: string | null;
  score: number | null;
  certificate_url: string | null;
  feedback: string | null;
  employee?: any;
  session?: HrTrainingSession;
  created_at: string;
  updated_at: string;
}

export interface CreateHrTrainingEnrollment {
  training_session_id: number;
  employee_id: number;
  status?: string;
}

export interface UpdateHrTrainingEnrollment extends Partial<CreateHrTrainingEnrollment> {}
