/// 동점자 처리 옵션 열거형
enum TieBreakerOption {
  /// 핸디캡을 적게 받은 사람이 우선(마이너스 포함)
  lowerHandicap,
  
  /// 같은 이벤트 내 게임 중 하이 점수와 로우 점수의 격차가 적은 사람이 우선
  lowerScoreGap,
  
  /// 연장자 우선
  olderAge,
  
  /// 기본값: 동점자 처리 없음 (동일 순위 표시)
  none;
  
  /// 열거형 값을 문자열로 변환
  String toDisplayString() {
    switch (this) {
      case TieBreakerOption.lowerHandicap:
        return '핸디캡이 적은 사람 우선';
      case TieBreakerOption.lowerScoreGap:
        return '점수 격차가 적은 사람 우선';
      case TieBreakerOption.olderAge:
        return '연장자 우선';
      case TieBreakerOption.none:
        return '동점자 처리 없음';
    }
  }
  
  /// 문자열에서 열거형 값으로 변환
  static TieBreakerOption fromString(String? value) {
    if (value == null) return TieBreakerOption.none;
    
    switch (value) {
      case 'lowerHandicap':
        return TieBreakerOption.lowerHandicap;
      case 'lowerScoreGap':
        return TieBreakerOption.lowerScoreGap;
      case 'olderAge':
        return TieBreakerOption.olderAge;
      default:
        return TieBreakerOption.none;
    }
  }
}
