import 'package:equatable/equatable.dart';

/// The expertise level of a staff member in a specific skill.
enum SkillLevel {
  /// Entry level.
  beginner,

  /// Experienced.
  skilled,

  /// Expert / Managerial level.
  professional,
}

/// The verification status of a claimed skill.
enum StaffSkillStatus {
  /// Claimed by staff, waiting for admin approval.
  pending,

  /// Verified by admin (documents checked).
  verified,

  /// Rejected by admin.
  rejected,
}

/// Represents a staff member's qualification in a specific [Skill].
class StaffSkill extends Equatable {

  const StaffSkill({
    required this.id,
    required this.staffId,
    required this.skillId,
    required this.level,
    required this.experienceYears,
    required this.status,
  });
  /// Unique identifier.
  final String id;

  /// The [Staff] member.
  final String staffId;

  /// The [Skill] they possess.
  final String skillId;

  /// Their expertise level.
  final SkillLevel level;

  /// Years of experience.
  final int experienceYears;

  /// Verification status.
  final StaffSkillStatus status;

  @override
  List<Object?> get props => <Object?>[id, staffId, skillId, level, experienceYears, status];
}