This commit is contained in:
2025-12-17 00:33:13 +01:00
parent 8c67081953
commit f01e01e50c
186 changed files with 9242 additions and 1342 deletions

View File

@@ -0,0 +1,25 @@
import { RacingDomainValidationError } from '../errors/RacingDomainError';
export type ProtestStatusValue = 'pending' | 'awaiting_defense' | 'under_review' | 'upheld' | 'dismissed' | 'withdrawn';
export class ProtestStatus {
private constructor(private readonly value: ProtestStatusValue) {}
static create(value: string): ProtestStatus {
const validStatuses: ProtestStatusValue[] = ['pending', 'awaiting_defense', 'under_review', 'upheld', 'dismissed', 'withdrawn'];
if (!validStatuses.includes(value as ProtestStatusValue)) {
throw new RacingDomainValidationError(`Invalid protest status: ${value}`);
}
return new ProtestStatus(value as ProtestStatusValue);
}
toString(): ProtestStatusValue {
return this.value;
}
equals(other: ProtestStatus): boolean {
return this.value === other.value;
}
}