export interface TrainingMatrix {
  id: number;
  organization_id: string;
  department_id: number | null;
  department_name: string | null;
  position_id: number | null;
  position_name: string | null;
  course_id: number;
  course_name: string;
  course_category: string;
  course_certificate_validity_months: number | null;
  is_required: boolean;
  renewal_period_months: number | null;
  note: string | null;
  created_at: string;
  updated_at: string;
}

export interface TrainingMatrixFilters {
  page?: number;
  limit?: number;
  search?: string;
  sort?: string;
}

export interface TrainingMatricesResponse {
  success: boolean;
  time: string;
  message: string;
  total_training_matrices: number;
  offset: number;
  limit: number;
  training_matrices: TrainingMatrix[];
}

export interface TrainingMatrixByIdResponse {
  success: boolean;
  time: string;
  message: string;
  training_matrix: TrainingMatrix;
}

export interface TrainingMatrixMutationPayload {
  departmentId?: number | null;
  positionId?: number | null;
  courseId: number;
  isRequired: boolean;
  renewalPeriodMonths?: number | null;
  note?: string;
}

export interface TrainingMatrixOption {
  value: string;
  label: string;
}

export interface TrainingMatrixOptionsResponse {
  departments: TrainingMatrixOption[];
  positions: TrainingMatrixOption[];
  courses: TrainingMatrixOption[];
}

export interface EmployeeCompliance {
  employee_id: number;
  employee_name: string;
  employee_code: string | null;
  department_name: string | null;
  position_name: string | null;
  required_courses: number;
  completed_courses: number;
  compliance_percent: number;
  missing_courses: string[];
}

export interface TrainingMatrixComplianceResponse {
  success: boolean;
  time: string;
  message: string;
  employees: EmployeeCompliance[];
}
