// ------------------------------------------------------------------
// Mock data — designed to be drop-in replaceable with a real API.
// ------------------------------------------------------------------

const CITIES = [
  { id: 'msk',  name: 'Москва',           emoji: '🏛',  hint: '12 команд' },
  { id: 'spb',  name: 'Санкт-Петербург',  emoji: '🌉', hint: '8 команд' },
  { id: 'kzn',  name: 'Казань',           emoji: '🕌', hint: '4 команды' },
  { id: 'ekb',  name: 'Екатеринбург',     emoji: '⛰️', hint: '5 команд' },
  { id: 'nsk',  name: 'Новосибирск',      emoji: '❄️', hint: '3 команды' },
];

const CATEGORIES = [
  { id: 'food',     name: 'Еда',                 icon: 'flame' },
  { id: 'drinks',   name: 'Напитки',             icon: 'sparkles' },
  { id: 'handmade', name: 'Хендмейд',            icon: 'spool' },
  { id: 'gifts',    name: 'Подарки',             icon: 'gift' },
  { id: 'decor',    name: 'Декор',               icon: 'star' },
  { id: 'wear',     name: 'Одежда/аксессуары',   icon: 'heart' },
  { id: 'other',    name: 'Другое',              icon: 'sparkle' },
];

const TEAMS = [
  { id: 'sales',   name: 'Команда продаж',     short: 'Продажи',   blurb: 'Авторские сладости и сувениры от ребят, у которых вечно глаза горят.' },
  { id: 'support', name: 'Команда поддержки',  short: 'Поддержка', blurb: 'Уютные мелочи, домашние напитки и подарки с теплотой.' },
  { id: 'hr',      name: 'HR-команда',         short: 'HR',        blurb: 'Домашняя выпечка, чай и подарки с душой и заботой.' },
  { id: 'it',      name: 'IT-команда',         short: 'IT',        blurb: 'Хендмейд, мерч и неожиданно много вязаных штук.' },
  { id: 'mkt',     name: 'Маркетинг',          short: 'Маркетинг', blurb: 'Аромасвечи, открытки и яркие подарочные наборы.' },
  { id: 'fin',     name: 'Финансы',            short: 'Финансы',   blurb: 'Декор, ёлочные игрушки и аккуратный handmade.' },
];

// Color tints used for placeholder product visuals — keeps the catalog warm
// without us drawing real product illustrations.
const TINTS = ['#FFE5D2', '#FFD0AC', '#FFEFB8', '#F8E1FF', '#E2F0D9', '#D8E8FF', '#FCDDD9'];

const PRODUCTS = [
  { id: 'p1',  title: 'Домашнее печенье',           price: 350,  city: 'msk', team: 'hr',      category: 'food',     stock: 'in',     desc: 'Песочное печенье с овсянкой и шоколадом. Печём дома по бабушкиному рецепту. Партия — 8 шт. в коробочке.', tags: ['домашнее', 'хит'] },
  { id: 'p2',  title: 'Аромасвеча ручной работы',   price: 700,  city: 'kzn', team: 'mkt',     category: 'gifts',    stock: 'limit',  desc: 'Соевый воск, аромат «корица + апельсин». Горит 18 часов, не коптит. Стекло можно использовать повторно.', tags: ['handmade'] },
  { id: 'p3',  title: 'Вязаный брелок-котик',       price: 250,  city: 'spb', team: 'it',      category: 'handmade', stock: 'in',     desc: 'Амигуруми, хлопок. 6 см, петелька для ключей. Цвета: рыжий, серый, чёрный — пишите, какого выбрать.', tags: ['handmade', 'милое'] },
  { id: 'p4',  title: 'Домашний лимонад',           price: 180,  city: 'ekb', team: 'support', category: 'drinks',   stock: 'in',     desc: 'Бутылочка 0,5 л. Лимон, имбирь, мята, тростниковый сахар. Без консервантов, хранить в холодильнике.', tags: ['свежее'] },
  { id: 'p5',  title: 'Новогодний декор-веночек',   price: 500,  city: 'nsk', team: 'fin',     category: 'decor',    stock: 'limit',  desc: 'Венок 25 см: еловые веточки, шишки, корица, сушёный апельсин. Подвешивается на дверь или окно.', tags: ['сезонное'] },
  { id: 'p6',  title: 'Подарочный набор «Уют»',     price: 1200, city: 'msk', team: 'sales',   category: 'gifts',    stock: 'in',     desc: 'Свеча, шоколад, открытка и пакетик чая в крафтовой коробке. Готов к подарку — без дополнительной упаковки.', tags: ['хит', 'подарок'] },
  { id: 'p7',  title: 'Имбирные пряники',           price: 420,  city: 'msk', team: 'hr',      category: 'food',     stock: 'in',     desc: 'Расписные пряники-снежинки, набор из 5 шт. Можно подписать имя — напишите в комментарии.', tags: ['сезонное'] },
  { id: 'p8',  title: 'Льняные тоут-сумки',         price: 850,  city: 'spb', team: 'it',      category: 'wear',     stock: 'in',     desc: 'Натуральный лён, ручная вышивка. Размер 35×40 см. Принт «кофе и код» — IT-юмор внутри.', tags: ['handmade'] },
  { id: 'p9',  title: 'Шоколад ручной работы',      price: 480,  city: 'kzn', team: 'mkt',     category: 'food',     stock: 'in',     desc: 'Тёмный шоколад 70%, миндаль и морская соль. Плитка 90 г в крафтовой обёртке.', tags: ['хит'] },
  { id: 'p10', title: 'Открытки набором, 5 шт.',    price: 320,  city: 'spb', team: 'it',      category: 'other',    stock: 'in',     desc: 'Авторские иллюстрации на плотном картоне. С конвертами. Идеально подписать коллеге.', tags: [] },
  { id: 'p11', title: 'Глинтвейн-смесь',            price: 290,  city: 'ekb', team: 'support', category: 'drinks',   stock: 'limit',  desc: 'Сухая смесь специй на 1 л вина: корица, гвоздика, бадьян, апельсиновая цедра. Инструкция на этикетке.', tags: ['сезонное'] },
  { id: 'p12', title: 'Ёлочные шары, набор',        price: 650,  city: 'nsk', team: 'fin',     category: 'decor',    stock: 'in',     desc: '3 стеклянных шара, ручная роспись. Цвета — белый, охра, тёмно-зелёный. В коробке.', tags: ['сезонное'] },
  { id: 'p13', title: 'Травяной чай «Тёплый дом»',  price: 380,  city: 'msk', team: 'hr',      category: 'drinks',   stock: 'in',     desc: 'Чабрец, мята, мелисса, ромашка. 50 г в крафт-пакете. Завариваем 1 ч.л. на чашку.', tags: ['уют'] },
  { id: 'p14', title: 'Подставка под кружку',       price: 220,  city: 'spb', team: 'it',      category: 'handmade', stock: 'in',     desc: 'Дерево + эпоксидка. Каждая уникальна — оттенки могут отличаться. 10×10 см.', tags: ['handmade'] },
  { id: 'p15', title: 'Носки шерстяные',            price: 550,  city: 'nsk', team: 'fin',     category: 'wear',     stock: 'in',     desc: 'Овечья шерсть, ручная вязка. Размеры 37–42. Цвета — серый и кремовый.', tags: ['handmade', 'уют'] },
  { id: 'p16', title: 'Печенье «С пожеланиями»',    price: 280,  city: 'msk', team: 'sales',   category: 'food',     stock: 'limit',  desc: 'Печенья-предсказания, 10 шт. в коробочке. Все пожелания добрые — обещаем.', tags: ['подарок'] },
  { id: 'p17', title: 'Мини-букет из сухоцветов',   price: 750,  city: 'kzn', team: 'mkt',     category: 'decor',    stock: 'limit',  desc: 'Лаванда, гипсофила, эвкалипт. Высота 20 см. Простоит год и сохранит аромат.', tags: ['handmade'] },
  { id: 'p18', title: 'Кружка с гравировкой',       price: 600,  city: 'ekb', team: 'support', category: 'gifts',    stock: 'in',     desc: 'Керамика 350 мл. Гравируем имя или короткую фразу — напишите в комментарии.', tags: ['подарок'] },
];

// Tints assigned deterministically by id index — stable across renders.
PRODUCTS.forEach((p, i) => { p.tint = TINTS[i % TINTS.length]; });

// Glyph for placeholder visuals — keeps things visually distinct.
const CATEGORY_GLYPH = {
  food: '🍪', drinks: '🍋', handmade: '🧶', gifts: '🎁',
  decor: '✨', wear: '🧣', other: '✿',
};

// Demo orders pre-seeded for the organizer admin panel.
const DEMO_ORDERS = [
  {
    id: 'FAIR-2026-001',
    createdAt: '27.05.2026, 11:42',
    status: 'new',
    customer: { name: 'Анна Лебедева', city: 'msk', team: 'mkt', phone: '+7 (903) 555-12-08', contact: '@anna_leb' },
    delivery: 'office',
    comment: 'Можно красивую упаковку?',
    items: [
      { productId: 'p6', qty: 1 },
      { productId: 'p13', qty: 2 },
    ],
  },
  {
    id: 'FAIR-2026-002',
    createdAt: '27.05.2026, 10:14',
    status: 'inwork',
    customer: { name: 'Дмитрий Орлов', city: 'spb', team: 'it', phone: '+7 (921) 444-90-31', contact: 'd.orlov@company.ru' },
    delivery: 'colleagues',
    comment: '',
    items: [
      { productId: 'p3', qty: 2 },
      { productId: 'p8', qty: 1 },
    ],
  },
  {
    id: 'FAIR-2026-003',
    createdAt: '26.05.2026, 18:27',
    status: 'confirmed',
    customer: { name: 'Мария Соколова', city: 'msk', team: 'hr', phone: '+7 (916) 222-71-55', contact: 'm.sokolova@company.ru' },
    delivery: 'office',
    comment: 'Заберу в пятницу после 17:00',
    items: [
      { productId: 'p1', qty: 3 },
      { productId: 'p16', qty: 1 },
    ],
  },
];

window.DATA = {
  CITIES, CATEGORIES, TEAMS, PRODUCTS, CATEGORY_GLYPH, DEMO_ORDERS,
  cityById:     (id) => CITIES.find((c) => c.id === id),
  teamById:     (id) => TEAMS.find((t) => t.id === id),
  categoryById: (id) => CATEGORIES.find((c) => c.id === id),
  productById:  (id) => PRODUCTS.find((p) => p.id === id),
};
