This commit is contained in:
2025-12-12 15:20:17 +01:00
parent 2cd3bfbb47
commit ddbd99b747
4 changed files with 16 additions and 7 deletions

View File

@@ -4,7 +4,7 @@ import type { StewardingDecisionMode } from '../entities/League';
export interface SeasonStewardingConfigProps {
decisionMode: StewardingDecisionMode;
requiredVotes?: number;
requiredVotes?: number | undefined;
requireDefense: boolean;
defenseTimeLimit: number;
voteTimeLimit: number;
@@ -54,6 +54,17 @@ export class SeasonStewardingConfig
);
}
// For non-voting modes, requiredVotes should not be provided
if (props.decisionMode !== 'steward_vote' &&
props.decisionMode !== 'member_vote' &&
props.decisionMode !== 'steward_veto' &&
props.decisionMode !== 'member_veto' &&
props.requiredVotes !== undefined) {
throw new RacingDomainValidationError(
'SeasonStewardingConfig.requiredVotes should only be provided for voting/veto modes',
);
}
if (!Number.isInteger(props.defenseTimeLimit) || props.defenseTimeLimit < 0) {
throw new RacingDomainValidationError(
'SeasonStewardingConfig.defenseTimeLimit must be a non-negative integer (hours)',