import { RacingDomainValidationError } from '../../errors/RacingDomainError'; import type { IValueObject } from '@core/shared/domain'; export interface DriverBioProps { value: string; } export class DriverBio implements IValueObject { private constructor(private readonly value: string) {} static create(value: string): DriverBio { if (value.length > 500) { throw new RacingDomainValidationError('Driver bio cannot exceed 500 characters'); } return new DriverBio(value); } toString(): string { return this.value; } equals(other: IValueObject): boolean { return this.props.value === other.props.value; } get props(): DriverBioProps { return { value: this.value }; } }