export class CountryFlagDisplay {
  private constructor(private readonly value: string) {}

  static fromCountryCode(countryCode: string | null | undefined): CountryFlagDisplay {
    if (!countryCode) {
      return new CountryFlagDisplay('🏁');
    }

    const code = countryCode.toUpperCase();
    if (code.length !== 2) {
      return new CountryFlagDisplay('🏁');
    }

    const codePoints = [...code].map((char) => 127397 + char.charCodeAt(0));
    return new CountryFlagDisplay(String.fromCodePoint(...codePoints));
  }

  toString(): string {
    return this.value;
  }
}
