import type { Market } from "@/lib/types";

export type MarketMetadata = {
  code: Market;
  numericId?: string;
  name: string;
  shortName: string;
  coordinates: [number, number];
  defaultLanguage: string;
  region: string;
};

export const marketsMetadata: MarketMetadata[] = [
  { code: "FR", numericId: "250", name: "France", shortName: "France", coordinates: [2.3522, 48.8566], defaultLanguage: "fr", region: "Europe" },
  { code: "US", numericId: "840", name: "États-Unis", shortName: "USA", coordinates: [-77.0369, 38.9072], defaultLanguage: "en", region: "Amériques" },
  { code: "UK", numericId: "826", name: "Royaume-Uni", shortName: "UK", coordinates: [-0.1276, 51.5072], defaultLanguage: "en", region: "Europe" },
  { code: "JP", numericId: "392", name: "Japon", shortName: "Japon", coordinates: [139.6917, 35.6895], defaultLanguage: "ja", region: "Asie" },
  { code: "HK", numericId: "344", name: "Hong Kong", shortName: "Hong Kong", coordinates: [114.1694, 22.3193], defaultLanguage: "zh", region: "Asie" },
  { code: "CN", numericId: "156", name: "Chine", shortName: "Chine", coordinates: [116.4074, 39.9042], defaultLanguage: "zh", region: "Asie" },
  { code: "DE", numericId: "276", name: "Allemagne", shortName: "Allemagne", coordinates: [13.405, 52.52], defaultLanguage: "de", region: "Europe" },
  { code: "BE", numericId: "056", name: "Belgique", shortName: "Belgique", coordinates: [4.3517, 50.8503], defaultLanguage: "fr", region: "Europe" },
  { code: "CH", numericId: "756", name: "Suisse", shortName: "Suisse", coordinates: [7.4474, 46.948], defaultLanguage: "fr", region: "Europe" },
  { code: "CA", numericId: "124", name: "Canada", shortName: "Canada", coordinates: [-75.6972, 45.4215], defaultLanguage: "en", region: "Amériques" },
  { code: "SG", numericId: "702", name: "Singapour", shortName: "Singapour", coordinates: [103.8198, 1.3521], defaultLanguage: "en", region: "Asie" },
  { code: "KR", numericId: "410", name: "Corée du Sud", shortName: "Corée", coordinates: [126.978, 37.5665], defaultLanguage: "ko", region: "Asie" },
  { code: "BR", numericId: "076", name: "Brésil", shortName: "Brésil", coordinates: [-47.8825, -15.7942], defaultLanguage: "pt", region: "Amériques" },
  { code: "RU", numericId: "643", name: "Russie", shortName: "Russie", coordinates: [37.6173, 55.7558], defaultLanguage: "ru", region: "Europe" },
  { code: "OTHER", name: "Autres marchés", shortName: "Autres", coordinates: [0, 0], defaultLanguage: "en", region: "Monde" }
];

export function getMarketMetadata(code: Market) {
  return marketsMetadata.find((market) => market.code === code) ?? marketsMetadata[marketsMetadata.length - 1];
}

export const numericIdToMarket = Object.fromEntries(
  marketsMetadata
    .filter((market) => market.numericId)
    .map((market) => [market.numericId, market.code])
) as Partial<Record<string, Market>>;
