/// 동점자 처리 옵션 열거형 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; } } }