import { detectDefaultCountryCode } from './phone';

export type GeoLevel = 'gouvernorat' | 'delegation' | 'localite' | 'district';

const TN: Record<GeoLevel, string> = {
  gouvernorat: 'Gouvernorat',
  delegation: 'Délégation',
  localite: 'Localité',
  district: 'Quartier',
};

const MA: Record<GeoLevel, string> = {
  gouvernorat: 'Région',
  delegation: 'Préfecture',
  localite: 'Commune',
  district: 'Quartier',
};

/** Labels follow the CRM default dial code (216 = Tunisie, 212 = Maroc). */
export function geoLevelLabel(level: GeoLevel, countryCode?: string | null): string {
  const cc = (countryCode ?? detectDefaultCountryCode()).replace(/\D/g, '');
  const catalog = cc === '212' ? MA : TN;
  return catalog[level] ?? level;
}

export function formatGeoPlace(
  level: GeoLevel,
  name: string,
  countryCode?: string | null,
): string {
  return `${geoLevelLabel(level, countryCode)} · ${name}`;
}
