import { RacingDomainValidationError } from '../errors/RacingDomainError'; import type { IEntity } from '@gridpilot/shared/domain'; export class Game implements IEntity { readonly id: string; readonly name: string; private constructor(props: { id: string; name: string }) { this.id = props.id; this.name = props.name; } static create(props: { id: string; name: string }): Game { if (!props.id || props.id.trim().length === 0) { throw new RacingDomainValidationError('Game ID is required'); } if (!props.name || props.name.trim().length === 0) { throw new RacingDomainValidationError('Game name is required'); } return new Game({ id: props.id, name: props.name, }); } }