import { RacingDomainValidationError } from '../errors/RacingDomainError'; import type { IValueObject } from '@core/shared/domain'; export class TrackCountry implements IValueObject { private constructor(private readonly value: string) {} get props(): string { return this.value; } static create(value: string): TrackCountry { if (!value || value.trim().length === 0) { throw new RacingDomainValidationError('Track country is required'); } return new TrackCountry(value.trim()); } toString(): string { return this.value; } equals(other: IValueObject): boolean { return this.value === other.props; } }