/* ============================================================
   i18n + mock data  (RU / UZ-latin)
   Persona: Aziz Rahimov, 23 — выпускник, метит в digital-маркетинг
   ============================================================ */

// UI chrome strings
const UI = {
  ru: {
    nav_stories: 'Лента',
    nav_jobs: 'Вакансии',
    nav_advisor: 'Советник',
    nav_growth: 'Рост',
    nav_profile: 'Профиль',

    // onboarding / chat
    advisor: 'Карьерный советник',
    online: 'на связи',
    typing: 'печатает',
    inputPh: 'Сообщение…',
    attach: 'Прикрепить диплом / CV',
    parsing: 'Читаю документ',
    extracted: 'Собрал из документа',
    skip: 'Пропустить и осмотреться',
    showProfile: 'Показать мой профиль',
    profileAssembling: 'Собираю профиль',
    assembled: 'Профиль собран',
    voiceHint: 'Можно голосом',

    // profile tray
    trayTitle: 'Твой профиль',
    role: 'Цель',
    skills: 'Навыки',
    education: 'Образование',
    location: 'Город',
    schedule: 'График',
    experience: 'Опыт',
    value: 'Оценка стоимости',

    // home / stories
    goodMorning: 'Доброе утро',
    weeklyPulse: 'Изменения за неделю',
    tapToHold: 'Удерживай — пауза',
    storyOf: 'из',

    // status
    statusTitle: 'Твой статус',
    statusSub: 'Управляешь видимостью сам',
    st_active: 'В поиске',
    st_open: 'Открыт к предложениям',
    st_closed: 'Не ищу',
    st_active_d: 'Видят все работодатели, ты в приоритете подбора',
    st_open_d: 'Видят при точном совпадении. Без спама',
    st_closed_d: 'Скрыт из поиска. Обзор остаётся с тобой',

    // jobs
    jobsTitle: 'Подобрано для тебя',
    jobsSub: 'Точно под тебя — 1–3 роли с обоснованием',
    tab_jobs: 'Вакансии',
    tab_intern: 'Стажировки',
    why: 'Почему подходит',
    match: 'совпадение',
    apply: 'Откликнуться',
    interesting: 'Интересно',
    applied: 'Отклик отправлен',
    hot: 'Горящая',
    remote: 'Удалёнка',
    internPay: 'Оплачивается',
    govProg: 'Госпрограмма',
    months: 'мес',

    // growth
    growthTitle: 'Твой рост',
    goal: 'Цель',
    readyFor: 'Готов к роли',
    changeGoal: 'Сменить цель',
    missing: 'Чего не хватает',
    microsteps: 'Шаги на сегодня',
    start: 'Начать',
    done: 'Готово',
    inProgress: 'В процессе',
    skillMap: 'Карта навыков',

    // profile screen
    estValue: 'Оценочная стоимость',
    perMonth: 'сум / мес',
    thisWeek: 'за неделю',
    canonicalSkills: 'Навыки',
    addSkill: 'Добавить',
    completeness: 'Профиль собран',
    improve: 'Дособрать с советником',
    privacy: 'Приватность и согласия',
    privacyNote: 'Диплом и контакты видит только тот, кому ты разрешил. Управляй в любой момент.',
    edit: 'Через диалог',
    languages: 'Языки',
    expTitle: 'Опыт',
    companiesHiring: 'Компании нанимают',
    whoViewed: 'Тебя смотрели',
    viewedSub: 'на этой неделе',
    native: 'родной',
    fluent: 'свободно',
    now: 'сейчас',

    seen: 'смотрели профили как у тебя',
    employers: 'работодателей',
    demand: 'спрос на твои навыки',
    newRoles: 'новые роли под тебя',
    level: 'уровень',
    settings: 'Настройки',
    lang: 'Язык',
    theme: 'Тема',
    light: 'Светлая',
    dark: 'Тёмная',
    next: 'Далее',
    back: 'Назад',
  },
  uz: {
    nav_stories: 'Lenta',
    nav_jobs: 'Vakansiyalar',
    nav_advisor: 'Maslahatchi',
    nav_growth: 'Rivoj',
    nav_profile: 'Profil',

    advisor: 'Karyera maslahatchisi',
    online: 'aloqada',
    typing: 'yozmoqda',
    inputPh: 'Xabar…',
    attach: 'Diplom / CV biriktirish',
    parsing: 'Hujjatni o‘qiyapman',
    extracted: 'Hujjatdan yig‘dim',
    skip: 'O‘tkazib, ko‘rib chiqish',
    showProfile: 'Profilimni ko‘rsat',
    profileAssembling: 'Profil yig‘yapman',
    assembled: 'Profil yig‘ildi',
    voiceHint: 'Ovoz bilan ham mumkin',

    trayTitle: 'Sening profiling',
    role: 'Maqsad',
    skills: 'Ko‘nikmalar',
    education: 'Ta’lim',
    location: 'Shahar',
    schedule: 'Grafik',
    experience: 'Tajriba',
    value: 'Qiymat bahosi',

    goodMorning: 'Xayrli tong',
    weeklyPulse: 'Hafta o‘zgarishlari',
    tapToHold: 'Ushlab tur — pauza',
    storyOf: '/',

    statusTitle: 'Sening holating',
    statusSub: 'Ko‘rinishni o‘zing boshqarasan',
    st_active: 'Qidiruvda',
    st_open: 'Takliflarga ochiq',
    st_closed: 'Qidirmayapman',
    st_active_d: 'Barcha ish beruvchilar ko‘radi, tanlovda ustuvorsan',
    st_open_d: 'Faqat aniq moslikda ko‘rinadi. Spamsiz',
    st_closed_d: 'Qidiruvdan yashirin. Haftalik sharh sen bilan qoladi',

    jobsTitle: 'Sen uchun tanlandi',
    jobsSub: 'Aniq sen uchun — asosli 1–3 ta rol',
    tab_jobs: 'Vakansiyalar',
    tab_intern: 'Amaliyot',
    why: 'Nega mos keladi',
    match: 'moslik',
    apply: 'Javob berish',
    interesting: 'Qiziq',
    applied: 'Javob yuborildi',
    hot: 'Shoshilinch',
    remote: 'Masofadan',
    internPay: 'To‘lanadi',
    govProg: 'Davlat dasturi',
    months: 'oy',

    growthTitle: 'Sening rivojing',
    goal: 'Maqsad',
    readyFor: 'Rolga tayyorlik',
    changeGoal: 'Maqsadni almashtirish',
    missing: 'Nimalar yetishmaydi',
    microsteps: 'Bugungi qadamlar',
    start: 'Boshlash',
    done: 'Tayyor',
    inProgress: 'Jarayonda',
    skillMap: 'Ko‘nikmalar xaritasi',

    estValue: 'Taxminiy qiymat',
    perMonth: 'so‘m / oy',
    thisWeek: 'hafta ichida',
    canonicalSkills: 'Ko‘nikmalar',
    addSkill: 'Qo‘shish',
    completeness: 'Profil yig‘ildi',
    improve: 'Maslahatchi bilan to‘ldirish',
    privacy: 'Maxfiylik va rozilik',
    privacyNote: 'Diplom va kontaktni faqat sen ruxsat bergan ko‘radi. Istalgan payt boshqar.',
    edit: 'Suhbat orqali',
    languages: 'Tillar',
    expTitle: 'Tajriba',
    companiesHiring: 'Kompaniyalar ishga olmoqda',
    whoViewed: 'Seni ko‘rishdi',
    viewedSub: 'shu hafta',
    native: 'ona tili',
    fluent: 'erkin',
    now: 'hozir',

    seen: 'sendek profillarni ko‘rdi',
    employers: 'ish beruvchi',
    demand: 'ko‘nikmalaringga talab',
    newRoles: 'sen uchun yangi rollar',
    level: 'daraja',
    settings: 'Sozlamalar',
    lang: 'Til',
    theme: 'Mavzu',
    light: 'Yorug‘',
    dark: 'Tungi',
    next: 'Keyingi',
    back: 'Orqaga',
  },
};

// bilingual value helper
function tr(o, lang) { return o ? (o[lang] ?? o.ru) : ''; }

// ---- working brand name (placeholder — swap in one place) ----
const BRAND = {
  name: 'HR yordamchi',
  tagline: { ru: 'Помощник в карьере', uz: 'Karyera yordamchingiz' },
};

// ---- real UZ employers (names + brand colours; monogram tiles) ----
// Trademarked logos are referenced by name + brand colour, not reproduced.
// `logo: true` → real logo file exists at logos/<key>.png; else monogram tile.
const BRANDS = {
  korzinka: { name: 'korzinka', short: 'k', bg: '#e3354a', logo: true },
  uzum:     { name: 'Uzum',     short: 'u', bg: '#7000ff', logo: true },
  click:    { name: 'Click',    short: 'C', bg: '#1a73e8', logo: true },
  beeline:  { name: 'Beeline',  short: 'B', bg: '#ffcc00', fg: '#15171c', logo: true },
  payme:    { name: 'Payme',    short: 'P', bg: '#19c2c9', logo: true },
  humans:   { name: 'Humans',   short: 'H', bg: '#ff2d6f' },
  anor:     { name: 'Anorbank', short: 'a', bg: '#6b2fe0' },
  artel:    { name: 'Artel',    short: 'A', bg: '#e2231a', logo: true },
  epam:     { name: 'EPAM',     short: 'E', bg: '#27a8e0', logo: true },
  go:       { name: 'Yandex Go',short: 'Y', bg: '#fc3f1d', logo: true },
  makro:    { name: 'Makro',    short: 'M', bg: '#e30613' },
  tbc:      { name: 'TBC',      short: 'T', bg: '#00aeef', logo: true },
};

const PERSONA = {
  name: { ru: 'Азиз Рахимов', uz: 'Aziz Rahimov' },
  initials: 'АР',
  initialsUz: 'AR',
  goal: { ru: 'Digital-маркетолог', uz: 'Digital marketolog' },
  location: { ru: 'Ташкент', uz: 'Toshkent' },
  schedule: { ru: 'Полная · стажировка', uz: 'To‘liq · amaliyot' },
  edu: { ru: 'Маркетинг · ТГЭУ', uz: 'Marketing · TDIU' },
  exp: { ru: '1 год · фриланс', uz: '1 yil · frilans' },
  value: 5200000,
  valueLow: 4000000,
  valueHigh: 6500000,
  trend: 8,
  completeness: 86,
};

// canonical skills with level 1..5
const SKILLS = [
  { ru: 'SMM', uz: 'SMM', lvl: 4 },
  { ru: 'Таргет-реклама', uz: 'Target reklama', lvl: 3 },
  { ru: 'Контент', uz: 'Kontent', lvl: 4 },
  { ru: 'Instagram', uz: 'Instagram', lvl: 5 },
  { ru: 'Аналитика', uz: 'Analitika', lvl: 2 },
  { ru: 'Копирайтинг', uz: 'Kopirayting', lvl: 3 },
];

// chat onboarding script
const CHAT = [
  { who: 'ai', text: { ru: 'Салам! Я твой карьерный советник 👋 Это не анкета — просто поговорим. Кем работаешь или хочешь работать?', uz: 'Salom! Men sening karyera maslahatchingman 👋 Bu anketa emas — shunchaki suhbat. Kim bo‘lib ishlaysan yoki ishlamoqchisan?' } },
  { who: 'choices', options: [
      { ru: 'Хочу в маркетинг / SMM', uz: 'Marketing / SMM ga', pick: true },
      { ru: 'Ищу первую работу', uz: 'Birinchi ishni qidiryapman' },
      { ru: 'Курьер / водитель', uz: 'Kuryer / haydovchi' },
  ] },
  { who: 'ai', text: { ru: 'Отличная цель — спрос растёт. Чтобы не печатать всё руками: загрузи диплом или CV, и я соберу профиль сам. Можно и голосом рассказать.', uz: 'Zo‘r maqsad — talab o‘smoqda. Hammasini qo‘lda yozmaslik uchun: diplom yoki CV yukla, profilni o‘zim yig‘aman. Ovoz bilan ham aytsang bo‘ladi.' }, add: ['role'] },
  { who: 'upload' },
  { who: 'ai', text: { ru: 'Готово ✨ Из документа вижу: диплом по маркетингу (ТГЭУ), год ведения Instagram-проектов, базовый таргет. Разложил по навыкам — посмотри, всё верно?', uz: 'Tayyor ✨ Hujjatdan ko‘ryapman: marketing diplomi (TDIU), bir yil Instagram loyihalari, boshlang‘ich target. Ko‘nikmalarga ajratdim — to‘g‘rimi?' }, add: ['skills', 'education', 'experience'] },
  { who: 'choices', options: [
      { ru: 'Да, всё верно', uz: 'Ha, to‘g‘ri', pick: true },
      { ru: 'Добавлю ещё навык', uz: 'Yana ko‘nikma qo‘shaman' },
  ] },
  { who: 'ai', text: { ru: 'Супер. Ещё два штриха. Какой формат ищешь?', uz: 'Zo‘r. Yana ikki savol. Qanday format qidiryapsan?' } },
  { who: 'choices', options: [
      { ru: 'Полная + готов на стажировку', uz: 'To‘liq + amaliyotga tayyor', pick: true },
      { ru: 'Частичная', uz: 'Qisman' },
      { ru: 'Удалёнка', uz: 'Masofadan' },
  ], add: ['schedule'] },
  { who: 'ai', text: { ru: 'И последнее — город?', uz: 'Va oxirgisi — shahar?' } },
  { who: 'choices', options: [
      { ru: 'Ташкент', uz: 'Toshkent', pick: true },
      { ru: 'Самарканд', uz: 'Samarqand' },
      { ru: 'Не важно', uz: 'Farqi yo‘q' },
  ], add: ['location'] },
  { who: 'assemble' },
  { who: 'ai', text: { ru: 'Готово! Профиль собран на 86%. Я уже вижу твою оценочную стоимость и 3 роли под тебя. Заглянем?', uz: 'Tayyor! Profil 86% yig‘ildi. Taxminiy qiymating va 3 ta rolni allaqachon ko‘ryapman. Ko‘ramizmi?' } },
];

// the tray facts revealed during chat
const TRAY = {
  role:       { key: 'role',       icon: 'target', val: PERSONA.goal },
  skills:     { key: 'skills',     icon: 'spark',  val: { ru: 'SMM · Таргет · Контент · +3', uz: 'SMM · Target · Kontent · +3' } },
  education:  { key: 'education',  icon: 'cap',     val: PERSONA.edu },
  experience: { key: 'experience',icon: 'briefcase', val: PERSONA.exp },
  schedule:   { key: 'schedule',   icon: 'clock',  val: PERSONA.schedule },
  location:   { key: 'location',   icon: 'pin',    val: PERSONA.location },
};

// weekly pulse / stories
const STORIES = [
  {
    type: 'value',
    accent: true,
    kicker: { ru: 'Изменения за неделю', uz: 'Hafta o‘zgarishlari' },
    title: { ru: 'Твоя стоимость растёт', uz: 'Qiymating o‘smoqda' },
    value: 5200000,
    trend: 8,
    sub: { ru: 'Рынок ценит твой SMM выше, чем неделю назад', uz: 'Bozor sening SMM’ingni bir hafta avvalgidan yuqori baholaydi' },
  },
  {
    type: 'watchers',
    kicker: { ru: 'Тебя заметили', uz: 'Seni payqashdi' },
    big: '14',
    title: { ru: 'работодателей смотрели профили как у тебя', uz: 'ish beruvchi sendek profillarni ko‘rdi' },
    sub: { ru: 'Включи «Открыт к предложениям» — попадёшь в их шортлисты', uz: '«Takliflarga ochiq»ni yoq — ularning ro‘yxatiga tushasan' },
  },
  {
    type: 'demand',
    kicker: { ru: 'Рынок навыков', uz: 'Ko‘nikmalar bozori' },
    title: { ru: 'Спрос на SMM вырос', uz: 'SMM ga talab oshdi' },
    delta: 12,
    sub: { ru: 'За месяц +12% вакансий с твоими навыками в Ташкенте', uz: 'Bir oyda Toshkentda sening ko‘nikmalaring bilan +12% vakansiya' },
  },
  {
    type: 'role',
    accent: true,
    brand: 'korzinka',
    kicker: { ru: 'Новая роль под тебя', uz: 'Sen uchun yangi rol' },
    title: { ru: 'SMM-менеджер', uz: 'SMM menejer' },
    company: 'korzinka',
    match: 92,
    sub: { ru: 'Подходит: опыт Instagram, таргет, твой город', uz: 'Mos: Instagram tajribasi, target, sening shahring' },
  },
  {
    type: 'gap',
    kicker: { ru: 'Один шаг сегодня', uz: 'Bugun bitta qadam' },
    title: { ru: 'До Middle не хватает Google Ads', uz: 'Middle’ga Google Ads yetmaydi' },
    sub: { ru: '15 минут в день — и через 3 недели закроешь пробел', uz: 'Kuniga 15 daqiqa — 3 haftada yopasan' },
  },
  {
    type: 'progress',
    kicker: { ru: 'Твой прогресс', uz: 'Sening yutug‘ing' },
    title: { ru: 'Аналитика +1 уровень', uz: 'Analitika +1 daraja' },
    sub: { ru: 'Ты стал ближе к роли Middle на 6%', uz: 'Middle roliga 6% yaqinlashding' },
  },
];

// matched jobs
const JOBS = [
  {
    title: { ru: 'SMM-менеджер', uz: 'SMM menejer' },
    brand: 'korzinka',
    salary: { ru: '5–7 млн сум', uz: '5–7 mln so‘m' },
    match: 92, hot: true,
    tags: [{ ru: 'Ташкент', uz: 'Toshkent' }, { ru: 'Полная', uz: 'To‘liq' }, { ru: 'Офис', uz: 'Ofis' }],
    why: [
      { ru: '5 лет ведёшь Instagram — их основной канал', uz: 'Instagram’da tajriba — ularning asosiy kanali' },
      { ru: 'Базовый таргет закрывает 80% задач роли', uz: 'Boshlang‘ich target rol vazifalarining 80%ini yopadi' },
      { ru: 'Твой город, офис в 20 минутах', uz: 'Sening shahring, ofis 20 daqiqada' },
    ],
  },
  {
    title: { ru: 'Маркетолог-стажёр', uz: 'Marketolog-amaliyotchi' },
    brand: 'uzum',
    salary: { ru: '3 млн сум', uz: '3 mln so‘m' },
    match: 84, intern: true,
    tags: [{ ru: 'Ташкент', uz: 'Toshkent' }, { ru: 'Стажировка', uz: 'Amaliyot' }, { ru: '3 мес', uz: '3 oy' }],
    why: [
      { ru: 'Идеальный старт для выпускника без коммерч. опыта', uz: 'Tijorat tajribasisiz bitiruvchi uchun ideal start' },
      { ru: 'Менторство и оффер при успехе', uz: 'Mentorlik va muvaffaqiyatda ish taklifi' },
    ],
  },
  {
    title: { ru: 'Таргетолог', uz: 'Targetolog' },
    brand: 'payme',
    salary: { ru: '6–8 млн сум', uz: '6–8 mln so‘m' },
    match: 81,
    tags: [{ ru: 'Ташкент', uz: 'Toshkent' }, { ru: 'Гибрид', uz: 'Gibrid' }],
    why: [
      { ru: 'Твой опыт таргета — прямое попадание', uz: 'Target tajribang — to‘g‘ridan-to‘g‘ri moslik' },
      { ru: 'Рост до Performance-маркетолога за год', uz: 'Bir yilda Performance marketologgacha o‘sish' },
    ],
  },
  {
    title: { ru: 'Контент-менеджер', uz: 'Kontent menejer' },
    brand: 'click',
    salary: { ru: '4–5 млн сум', uz: '4–5 mln so‘m' },
    match: 78, remote: true,
    tags: [{ ru: 'Удалёнка', uz: 'Masofadan' }, { ru: 'Гибкий график', uz: 'Moslashuvchan' }],
    why: [
      { ru: 'Сильный копирайтинг и контент в профиле', uz: 'Profilda kuchli kopirayting va kontent' },
      { ru: 'Удалёнка — как ты и просил', uz: 'Masofadan — so‘raganingdek' },
    ],
  },
  {
    title: { ru: 'Бренд-маркетолог (ассистент)', uz: 'Brend marketolog (assistent)' },
    brand: 'artel',
    salary: { ru: '5 млн сум', uz: '5 mln so‘m' },
    match: 73,
    tags: [{ ru: 'Ташкент', uz: 'Toshkent' }, { ru: 'Полная', uz: 'To‘liq' }],
    why: [
      { ru: 'Шанс вырасти из digital в бренд-маркетинг', uz: 'Digital’dan brend marketingga o‘sish imkoni' },
      { ru: 'Большой бренд — сильная строчка в резюме', uz: 'Yirik brend — rezyumeda kuchli qator' },
    ],
  },
];

// internships (students)
const INTERNS = [
  { title: { ru: 'Маркетинг · стажировка', uz: 'Marketing · amaliyot' }, brand: 'uzum', pay: true, gov: false, months: 3, sub: { ru: 'Оплачивается · оффер при успехе', uz: 'To‘lanadi · muvaffaqiyatda taklif' } },
  { title: { ru: 'SMM · практика', uz: 'SMM · amaliyot' }, brand: 'go', pay: false, gov: true, months: 2, sub: { ru: 'Госпрограмма молодёжной занятости', uz: 'Yoshlar bandligi davlat dasturi' } },
  { title: { ru: 'Digital · стажировка', uz: 'Digital · amaliyot' }, brand: 'beeline', pay: true, gov: false, months: 6, sub: { ru: 'Оплачивается · гибкий график для студентов', uz: 'To‘lanadi · talabalar uchun moslashuvchan' } },
  { title: { ru: 'Контент · практика', uz: 'Kontent · amaliyot' }, brand: 'click', pay: true, gov: false, months: 3, sub: { ru: 'Оплачивается · удалённо', uz: 'To‘lanadi · masofadan' } },
  { title: { ru: 'Аналитика · стажировка', uz: 'Analitika · amaliyot' }, brand: 'epam', pay: false, gov: true, months: 4, sub: { ru: 'Госпрограмма · менторство', uz: 'Davlat dasturi · mentorlik' } },
];

// employers who recently viewed similar profiles (home rail)
const VIEWERS = ['korzinka', 'uzum', 'payme', 'click', 'humans', 'artel', 'beeline', 'tbc'];

// growth / gap
const GROWTH = {
  goal: { ru: 'Middle Digital-маркетолог', uz: 'Middle Digital marketolog' },
  readiness: 64,
  missing: [
    { ru: 'Google Ads', uz: 'Google Ads', sev: 'gap', note: { ru: 'ключевой для роли', uz: 'rol uchun asosiy' } },
    { ru: 'SQL — базовый', uz: 'SQL — boshlang‘ich', sev: 'mid', note: { ru: 'для аналитики', uz: 'analitika uchun' } },
    { ru: 'English B1', uz: 'English B1', sev: 'mid', note: { ru: 'cross-border роли', uz: 'cross-border rollar' } },
  ],
  steps: [
    { ru: 'Пройти урок «Структура Google Ads»', uz: '«Google Ads tuzilishi» darsini o‘tash', mins: 15, state: 'todo' },
    { ru: 'Собрать 1 тестовую кампанию', uz: '1 ta sinov kampaniya yig‘ish', mins: 30, state: 'todo' },
    { ru: 'Обновить кейс в профиле', uz: 'Profildagi keysni yangilash', mins: 10, state: 'progress' },
  ],
};

// languages
const LANGS = [
  { ru: 'Узбекский', uz: 'O‘zbek', lvl: { ru: 'родной', uz: 'ona tili' }, pct: 100 },
  { ru: 'Русский', uz: 'Rus', lvl: { ru: 'свободно', uz: 'erkin' }, pct: 90 },
  { ru: 'English', uz: 'Ingliz', lvl: { ru: 'B1', uz: 'B1' }, pct: 55 },
];

// experience timeline
const EXPERIENCE = [
  { role: { ru: 'SMM-фрилансер', uz: 'SMM frilanser' }, org: { ru: 'Частные проекты', uz: 'Shaxsiy loyihalar' }, period: { ru: '2024 — сейчас', uz: '2024 — hozir' }, dur: { ru: '1 год', uz: '1 yil' } },
  { role: { ru: 'Контент-волонтёр', uz: 'Kontent volontyor' }, org: { ru: 'Студсовет ТГЭУ', uz: 'TDIU talabalar kengashi' }, period: { ru: '2023 — 2024', uz: '2023 — 2024' }, dur: { ru: '8 мес', uz: '8 oy' } },
];

Object.assign(window, { UI, tr, BRAND, BRANDS, VIEWERS, PERSONA, SKILLS, CHAT, TRAY, STORIES, JOBS, INTERNS, GROWTH, LANGS, EXPERIENCE });
