import type { AppLocale } from "./config";

const labels = {
  overview: { uz: "Umumiy ko'rinish", ru: "Обзор", en: "Overview" },
  finance: { uz: "Moliya", ru: "Финансы", en: "Finance" },
  trade: { uz: "Savdo", ru: "Торговля", en: "Trade" },
  identity: { uz: "Identifikatsiya", ru: "Идентификация", en: "Identity" },
  inputs: { uz: "Resurslar", ru: "Ресурсы", en: "Inputs" },
  yourFarmModules: { uz: "Ferma modullari", ru: "Модули фермы", en: "Your Farm Modules" },
  welcomeBack: { uz: "Xush kelibsiz", ru: "Добро пожаловать", en: "Welcome back" },
  manageModules: {
    uz: "Moliya, savdo, identifikatsiya va ferma resurslarini bir joydan boshqaring.",
    ru: "Управляйте финансами, торговлей, идентификацией и ресурсами фермы в одном месте.",
    en: "Manage your finance, trade connections, identity, and farm inputs from one place.",
  },
  agnetFinance: { uz: "AGNET Moliya", ru: "AGNET Финансы", en: "AGNET Finance" },
  agnetTrade: { uz: "AGNET Savdo", ru: "AGNET Торговля", en: "AGNET Trade" },
  agnetIdentity: { uz: "AGNET Identifikatsiya", ru: "AGNET Идентификация", en: "AGNET Identity" },
  agnetInputs: { uz: "AGNET Resurslar", ru: "AGNET Ресурсы", en: "AGNET Inputs" },
  financeDesc: {
    uz: "Kredit arizangiz, holat, SLA muddatlari va muassasa yo'nalishini kuzating.",
    ru: "Отслеживайте кредитную заявку, статус, сроки SLA и маршрутизацию учреждения.",
    en: "Track your loan request, case status, SLA timelines, and institution routing.",
  },
  tradeDesc: {
    uz: "Xaridorlar, eksport hujjatlari va ekinlaringiz narx ko'rsatkichlarini ko'ring.",
    ru: "Просматривайте покупателей, экспортные документы и ценовые ориентиры для культур.",
    en: "View buyer matches, export documentation, and price benchmarks for your crops.",
  },
  identityDesc: {
    uz: "Ferma profili, KYC holati, GIS uchastkalari va muvofiqlik yozuvlari.",
    ru: "Профиль фермы, статус KYC, участки GIS и записи соответствия.",
    en: "Your farm profile, KYC status, GIS parcels, and compliance records.",
  },
  inputsDesc: {
    uz: "Ferma aktivlari, tavsiyalar, yetkazib beruvchi reytinglari va xarid ko'magi.",
    ru: "Активы фермы, рекомендации, рейтинги поставщиков и поддержка закупок.",
    en: "Farm assets, input recommendations, supplier ratings, and procurement support.",
  },
  inputsPageTitle: {
    uz: "AGNET Resurslar",
    ru: "AGNET Ресурсы",
    en: "AGNET Inputs",
  },
  inputsPageSubtitle: {
    uz: "Shaffof resurslar. Ishonchli yetkazib beruvchilar. O'z vaqtida yetkazib berish.",
    ru: "Прозрачные ресурсы. Надёжные поставщики. Своевременная доставка.",
    en: "Transparent inputs. Trusted suppliers. Timely delivery.",
  },
  inputsKpiSeed: { uz: "Urug'", ru: "Семена", en: "Seed" },
  inputsKpiFertiliser: { uz: "O'g'it", ru: "Удобрения", en: "Fertiliser" },
  inputsKpiEquipment: { uz: "Uskuna", ru: "Оборудование", en: "Equipment" },
  inputsKpiVouchers: { uz: "Vaucher", ru: "Ваучеры", en: "Voucher" },
  inputsKpiDelivery: { uz: "Yetkazib berish", ru: "Доставка", en: "Delivery" },
  inputsKpiProductsAvailable: {
    uz: "Mavjud mahsulotlar",
    ru: "Доступные продукты",
    en: "Products available",
  },
  inputsKpiEquipmentAvailable: {
    uz: "Mavjud uskunalar",
    ru: "Доступное оборудование",
    en: "Equipment available",
  },
  inputsKpiActiveVouchers: {
    uz: "Faol vaucherlar",
    ru: "Активные ваучеры",
    en: "Active vouchers",
  },
  inputsKpiInTransit: { uz: "Yo'lda", ru: "В пути", en: "In transit" },
  inputsSuppliersTitle: {
    uz: "Eng yaxshi yetkazib beruvchilar",
    ru: "Лучшие поставщики",
    en: "Top Rated Suppliers",
  },
  inputsCatalogTitle: {
    uz: "Tanlangan katalog",
    ru: "Избранный каталог",
    en: "Featured Catalog",
  },
  inputsViewAll: { uz: "Hammasini ko'rish", ru: "Смотреть все", en: "View all" },
  inputsCatalogMore: {
    uz: "Ko'proq {category} navlari mavjud",
    ru: "Доступно больше сортов {category}",
    en: "More {category} varieties available",
  },
  inputsVoucherTitle: { uz: "Kirish vaucheri", ru: "Ваучер на ресурсы", en: "Input Voucher" },
  inputsVoucherApproved: { uz: "Tasdiqlangan", ru: "Одобрено", en: "Approved" },
  inputsVoucherRedeemed: { uz: "Ishlatilgan", ru: "Использован", en: "Redeemed" },
  inputsVoucherExpired: { uz: "Muddati tugagan", ru: "Истёк", en: "Expired" },
  inputsVoucherAmount: { uz: "Summa", ru: "Сумма", en: "Amount" },
  inputsVoucherStatus: { uz: "Holat", ru: "Статус", en: "Status" },
  inputsPaymentRoute: {
    uz: "To'lov yo'nalishi",
    ru: "Маршрут оплаты",
    en: "Payment route",
  },
  inputsDeliveryTitle: {
    uz: "Yetkazib berish kuzatuvi",
    ru: "Отслеживание доставки",
    en: "Delivery Tracking",
  },
  inputsDeliveryInTransit: { uz: "Yo'lda", ru: "В пути", en: "In transit" },
  inputsDeliveryDelivered: { uz: "Yetkazildi", ru: "Доставлено", en: "Delivered" },
  inputsDeliveryPending: { uz: "Kutilmoqda", ru: "Ожидается", en: "Pending" },
  inputsStarRatingAria: {
    uz: "{rating} dan 5 yulduz",
    ru: "{rating} из 5 звёзд",
    en: "{rating} out of 5 stars",
  },
  inputsTrackingId: { uz: "Kuzatuv ID", ru: "ID отслеживания", en: "Tracking ID" },
  inputsDeliveryCurrentLocation: {
    uz: "Joriy joylashuv",
    ru: "Текущее местоположение",
    en: "Current location",
  },
  inputsDeliveryMapPlaceholder: {
    uz: "Xarita ko'rinishi tez orada",
    ru: "Карта скоро будет доступна",
    en: "Map view coming soon",
  },
  inputsDeliveryEta: {
    uz: "Taxminiy yetkazib berish",
    ru: "Ожидаемая доставка",
    en: "Estimated delivery",
  },
  inputsEmptyTitle: {
    uz: "Resurs ma'lumotlari yo'q",
    ru: "Нет данных о ресурсах",
    en: "No Input Data",
  },
  inputsEmptyDescription: {
    uz: "Katalog, vaucher va yetkazib berish ma'lumotlari hali mavjud emas.",
    ru: "Данные каталога, ваучеров и доставки пока недоступны.",
    en: "Catalog, voucher, and delivery data is not available yet.",
  },
  loadingDashboard: {
    uz: "Boshqaruv panelingiz yuklanmoqda...",
    ru: "Загрузка панели управления...",
    en: "Loading your dashboard...",
  },
} as const;

const financeLabels = {
  caseId: { uz: "Case ID", ru: "ID дела", en: "Case ID" },
  copyCaseId: { uz: "Case ID nusxalash", ru: "Копировать ID дела", en: "Copy case ID" },
  gisVerified: { uz: "GIS tasdiqlangan", ru: "GIS подтверждён", en: "GIS Verified" },
  eligibility: { uz: "Muvofiqlik", ru: "Соответствие", en: "Eligibility" },
  eligibilityLabel: { uz: "Yuqori", ru: "Высокий", en: "High" },
  strongProfile: { uz: "Kuchli profil", ru: "Сильный профиль", en: "Strong Profile" },
  scoreUpdatedToday: {
    uz: "Ball bugun yangilangan",
    ru: "Оценка обновлена сегодня",
    en: "Score updated today",
  },
  routed: { uz: "Yo'naltirilgan", ru: "Направлено", en: "Routed" },
  priority: { uz: "Ustuvorlik", ru: "Приоритет", en: "Priority" },
  bestMatch: { uz: "Eng yaxshi moslik", ru: "Лучшее совпадение", en: "Best Match" },
  sla: { uz: "SLA", ru: "SLA", en: "SLA" },
  hrsUnit: { uz: "soat", ru: "ч", en: "hrs" },
  slaRemaining: {
    uz: "{remaining} / {total} soat qoldi",
    ru: "осталось {remaining} из {total} ч",
    en: "{remaining} of {total} hrs remaining",
  },
  due: { uz: "Muddat", ru: "Срок", en: "Due" },
  farmerFarm: { uz: "Fermer va ferma", ru: "Фермер и ферма", en: "Farmer & Farm" },
  farmerName: { uz: "Fermer ismi", ru: "Имя фермера", en: "Farmer Name" },
  region: { uz: "Viloyat", ru: "Регион", en: "Region" },
  district: { uz: "Tuman", ru: "Район", en: "District" },
  farmSize: { uz: "Ferma hajmi", ru: "Размер фермы", en: "Farm Size" },
  primaryCrop: { uz: "Asosiy ekin", ru: "Основная культура", en: "Primary Crop" },
  season: { uz: "Mavsum", ru: "Сезон", en: "Season" },
  purpose: { uz: "Maqsad", ru: "Цель", en: "Purpose" },
  bankRouting: {
    uz: "Bank / MFI yo'naltirish",
    ru: "Маршрутизация банка / МФО",
    en: "Bank / MFI Routing",
  },
  topMatches: { uz: "Eng yaxshi mosliklar", ru: "Лучшие совпадения", en: "Top Matches" },
  matchScore: { uz: "moslik", ru: "совпадение", en: "match" },
  routedStatus: { uz: "Yo'naltirilgan", ru: "Направлено", en: "Routed" },
  view: { uz: "Ko'rish", ru: "Просмотр", en: "View" },
  documents: { uz: "Hujjatlar", ru: "Документы", en: "Documents" },
  verified: { uz: "Tasdiqlangan", ru: "Подтверждено", en: "Verified" },
  pending: { uz: "Kutilmoqda", ru: "В ожидании", en: "Pending" },
  approvalPath: { uz: "Tasdiqlash yo'li", ru: "Путь одобрения", en: "Approval Path" },
  whyScore: { uz: "Nega bu ball?", ru: "Почему такая оценка?", en: "Why this score?" },
  emptyTitle: {
    uz: "Moliya so'rovi yo'q",
    ru: "Нет финансовой заявки",
    en: "No Finance Request",
  },
  emptyDesc: {
    uz: "Onboarding jarayonida moliya so'rovi yuborilmagan. Yordam kerak bo'lsa, qo'llab-quvvatlash bilan bog'laning.",
    ru: "Вы не подали финансовую заявку при регистрации. Обратитесь в поддержку, если нужна помощь.",
    en: "You haven't submitted a finance request during onboarding. Contact support if you need assistance.",
  },
  routingNotice: {
    uz: "So'rovingiz hamkor muassasalarga yo'naltirilmoqda. Holat o'zgarganda SMS xabar olasiz.",
    ru: "Ваша заявка направляется партнёрским учреждениям. Вы получите SMS при изменении статуса.",
    en: "Your request is being routed to partner institutions. You will receive SMS updates as your case progresses.",
  },
  satelliteImagery: {
    uz: "Sun'iy yo'ldosh tasvirlari",
    ru: "Спутниковые снимки",
    en: "Satellite Imagery",
  },
  fieldMapAlt: {
    uz: "Ferma maydoni sun'iy yo'ldosh xaritasi",
    ru: "Спутниковая карта участка",
    en: "Satellite field map with farm boundary",
  },
} as const;

/** Identity module strings — `identity.*` namespace */
export const identityLabels = {
  gisTitle: { uz: "GIS xaritasi", ru: "GIS карта", en: "GIS Map" },
  gisMapAria: { uz: "Ferma maydoni poligon xaritasi", ru: "Карта полигона участка", en: "Farm parcel polygon map" },
  ekycTitle: { uz: "eKYC", ru: "eKYC", en: "eKYC" },
  verified: { uz: "Tasdiqlangan", ru: "Подтверждено", en: "Verified" },
  pending: { uz: "Kutilmoqda", ru: "Ожидание", en: "Pending" },
  name: { uz: "Ism", ru: "Имя", en: "Name" },
  aadhaar: { uz: "PINFL", ru: "PINFL", en: "Aadhaar" },
  dob: { uz: "Tug'ilgan sana", ru: "Дата рождения", en: "DOB" },
  mobile: { uz: "Telefon", ru: "Телефон", en: "Mobile" },
  ekycVerifiedTitle: { uz: "eKYC tasdiqlandi", ru: "eKYC подтвержден", en: "eKYC Verified" },
  ekycVerifiedDesc: {
    uz: "Shaxs muvaffaqiyatli autentifikatsiya qilindi.",
    ru: "Личность успешно аутентифицирована.",
    en: "Identity authenticated successfully.",
  },
  farmProfileTitle: { uz: "Ferma profili", ru: "Профиль фермы", en: "Farm Profile" },
  farmerId: { uz: "Fermer ID", ru: "ID фермера", en: "Farmer ID" },
  farmName: { uz: "Ferma nomi", ru: "Название фермы", en: "Farm Name" },
  location: { uz: "Joylashuv", ru: "Местоположение", en: "Location" },
  totalArea: { uz: "Umumiy maydon", ru: "Общая площадь", en: "Total Area" },
  landType: { uz: "Yer turi", ru: "Тип земли", en: "Land Type" },
  kycStatus: { uz: "KYC holati", ru: "Статус KYC", en: "KYC Status" },
  ownershipOwner: { uz: "Egasi", ru: "Владелец", en: "Owned" },
  ownershipTenant: { uz: "Ijara", ru: "Аренда", en: "Tenant" },
  ownershipCooperative: { uz: "Kooperativ a'zosi", ru: "Член кооператива", en: "Cooperative member" },
  landEvidenceTitle: { uz: "Yer dalillari", ru: "Земельные документы", en: "Land Evidence" },
  yieldHistoryTitle: { uz: "Hosildorlik tarixi", ru: "История урожая", en: "Yield History" },
  yieldUnit: { uz: "(t/ga)", ru: "(т/га)", en: "(t/ha)" },
  cropFilter: { uz: "Ekin", ru: "Культура", en: "Crop" },
  complianceTitle: { uz: "Muvofiqlik profili", ru: "Профиль соответствия", en: "Compliance Profile" },
  compliantTitle: { uz: "Muvofiq", ru: "Соответствует", en: "Compliant" },
  compliantDesc: {
    uz: "Barcha tekshiruvlar o'tdi.",
    ru: "Все проверки пройдены.",
    en: "All checks passed.",
  },
  emptyTitle: { uz: "Identifikatsiya ma'lumotlari yo'q", ru: "Нет данных идентификации", en: "No Identity Data" },
  emptyDesc: {
    uz: "Ferma profili ma'lumotlari onboarding jarayonida to'ldirilmagan.",
    ru: "Данные профиля фермы не были заполнены при регистрации.",
    en: "Farm profile data was not completed during onboarding.",
  },
} as const;

type DashboardKey = keyof typeof labels;
type FinanceKey = keyof typeof financeLabels;
type IdentityKey = keyof typeof identityLabels;

export function td(
  key: DashboardKey,
  locale: AppLocale,
  vars?: Record<string, string | number>,
): string {
  let text: string = labels[key]?.[locale] ?? labels[key]?.en ?? key;
  if (vars) {
    for (const [name, value] of Object.entries(vars)) {
      text = text.replace(`{${name}}`, String(value));
    }
  }
  return text;
}

export function tf(
  key: FinanceKey,
  locale: AppLocale,
  vars?: Record<string, string | number>,
): string {
  let text: string = financeLabels[key]?.[locale] ?? financeLabels[key]?.en ?? key;
  if (vars) {
    for (const [name, value] of Object.entries(vars)) {
      text = text.replace(`{${name}}`, String(value));
    }
  }
  return text;
}

export function ti(key: IdentityKey, locale: AppLocale): string {
  return identityLabels[key]?.[locale] ?? identityLabels[key]?.en ?? key;
}
