Files
bowlingManager/mobile/lib/models/tie_breaker_option.dart
T
2025-08-12 03:28:08 +09:00

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;
}
}
}