import type { ValueObject } from '@core/shared/domain'; export interface AnalyticsSessionIdProps { value: string; } /** * Value Object: AnalyticsSessionId * * Represents an analytics session identifier within the analytics bounded context. */ export class AnalyticsSessionId implements ValueObject { public readonly props: AnalyticsSessionIdProps; private constructor(value: string) { this.props = { value }; } static create(raw: string): AnalyticsSessionId { const value = raw.trim(); if (!value) { throw new Error('AnalyticsSessionId must be a non-empty string'); } return new AnalyticsSessionId(value); } get value(): string { return this.props.value; } equals(other: IValueObject): boolean { return this.props.value === other.props.value; } }