import { DomainError } from '@/shared/exceptions/domain.exception';

export class PhoneNumber {
  constructor(public readonly value: string) {
    if (!/^1[3-9]\d{9}$/.test(value)) {
      throw new DomainError('手机号格式错误');
    }
  }

  static create(value: string): PhoneNumber {
    return new PhoneNumber(value);
  }

  equals(other: PhoneNumber): boolean {
    return this.value === other.value;
  }

  masked(): string {
    return this.value.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
  }
}
