import { RacingDomainValidationError } from '../errors/RacingDomainError'; import type { IValueObject } from '@gridpilot/shared/domain'; export interface LeagueTimezoneProps { id: string; } export class LeagueTimezone implements IValueObject { private readonly id: string; constructor(id: string) { if (!id || id.trim().length === 0) { throw new RacingDomainValidationError('LeagueTimezone id must be a non-empty string'); } this.id = id; } getId(): string { return this.id; } get props(): LeagueTimezoneProps { return { id: this.id }; } equals(other: IValueObject): boolean { return this.props.id === other.props.id; } }