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