import type { FarmerExplanation } from "./api-types";
import type { AppLocale } from "./i18n/config";

export interface ReasonLabel {
  uz: string;
  ru: string;
  en: string;
}

/** Plain-language labels for scoring reason codes (W-012). */
export const SCORING_REASON_LABELS: Record<string, ReasonLabel> = {
  RC_PRITHVI_SATELLITE: {
    uz: "Prithvi sun'iy yo'ldosh tahlili ijobiy natija berdi",
    ru: "Спутниковый анализ Prithvi дал положительный результат",
    en: "Prithvi satellite analysis returned a positive result",
  },
  RC_NDVI_ANOMALY: {
    uz: "O'simlik salomatligi (Prithvi sun'iy yo'ldosh) yaxshi ko'rsatkichlar berdi",
    ru: "Показатели здоровья растений (спутник Prithvi) положительные",
    en: "Crop health indicators (Prithvi satellite) are positive",
  },
  RC_YIELD_FORECAST: {
    uz: "SATAI hosildorlik prognozi kredit imkoniyatini oshirdi",
    ru: "Прогноз урожайности SATAI повысил кредитный потенциал",
    en: "SATAI yield forecast improved credit potential",
  },
  RC_DROUGHT_INDEX: {
    uz: "Qurg'oqchilik xavfi ballingizni biroz pasaytirdi",
    ru: "Риск засухи немного снизил ваш балл",
    en: "Drought risk slightly lowered your score",
  },
  RC_DOC_QUALITY: {
    uz: "Hujjatlar sifati yuqori — ishonchlilik oshdi",
    ru: "Высокое качество документов повысило доверие",
    en: "High document quality increased trust",
  },
  RC_DTI_PROXY: {
    uz: "Qarz va daromad nisbati ehtiyotkorlik talab qiladi",
    ru: "Соотношение долга и дохода требует осторожности",
    en: "Debt-to-income ratio requires caution",
  },
  RC_LAND_AREA: {
    uz: "E'lon qilingan yer maydoni mos keladi",
    ru: "Заявленная площадь земли соответствует",
    en: "Declared land area is consistent",
  },
  RC_REPAYMENT_HISTORY: {
    uz: "Oldingi kredit to'lovlari tarixingiz ijobiy",
    ru: "История погашения кредитов положительная",
    en: "Your prior loan repayment history is positive",
  },
};

export function getReasonLabel(code: string | undefined, locale: AppLocale): string {
  if (!code) return "";
  const entry = SCORING_REASON_LABELS[code];
  if (entry) return entry[locale];
  return code;
}

export function getFarmerExplanationText(
  explanation: FarmerExplanation | undefined,
  locale: AppLocale,
): string | undefined {
  if (!explanation) return undefined;
  return explanation[locale] ?? explanation.uz ?? explanation.ru ?? explanation.en;
}
