// Sample/markup data for the /trade-in/v2 "МЕРА Оценка" design port.
// Extracted verbatim from the pixel design (МЕРА Оценка.dc.html). This is the
// data source for the markup — components must NOT fetch; they read from here.
// Colour fields reference tokens so the palette stays the single source of truth.

import { tokens } from "./tokens";
import type {
  Analytics,
  CacheKpi,
  CacheRow,
  DkpRow,
  AdRow,
  DealRow,
  DropdownOptions,
  History,
  MarketAds,
  MarketDeals,
  ObjectInfo,
  Ranges,
  Report,
  ResultCard,
  ResultMeta,
  ScatterMini,
  SourceCard,
  Summary,
  User,
} from "./types";

export const report: Report = {
  id: "9b9e2737",
  date: "20.06.2026",
  validUntil: "21.06.2026",
};

export const object: ObjectInfo = {
  address: "ул. Малышева, 30",
  city: "Екатеринбург, Россия",
  area: "54",
  rooms: "2",
  floor: "5",
  totalFloors: "17",
  year: "1985",
  houseType: "Панельный",
  repair: "Хороший",
  balcony: true,
  locationIndexLabel: "+8%",
  locationIndexOk: true,
  // Approximate центр Екатеринбурга near ул. Малышева, 30 — illustrative
  // fixture coordinate for the HeroBar locator mini-map (unwired usage only).
  lat: 56.8384,
  lon: 60.6057,
};

// ---- 02 RESULT ------------------------------------------------------------

export const resultCards: ResultCard[] = [
  {
    title: ["РЕКОМЕНДОВАННАЯ ЦЕНА", "В ОБЪЯВЛЕНИИ"],
    value: "11,29",
    unit: "млн ₽",
    range: "7,72 — 14,46 млн ₽",
    ppm: "225 801 ₽/м² · по объявлениям",
    bars: [30, 55, 80, 100, 70, 45, 25, 35],
    nav: 2,
  },
  {
    title: ["ОЖИДАЕМАЯ СДЕЛКА", "(ПОЛУЧИТЕ)"],
    value: "10,00",
    unit: "млн ₽",
    range: "6,83 — 12,81 млн ₽",
    ppm: "199 973 ₽/м²",
    delta: "−11%",
    deltaLabel: "К ОБЪЯВЛ.",
    nav: 2,
  },
  {
    title: ["ДКП · РОСРЕЕСТР", "(ФАКТИЧЕСКИЕ СДЕЛКИ)"],
    value: "9,43",
    unit: "млн ₽",
    range: "6,10 — 12,72 млн ₽",
    ppm: "188 672 ₽/м² · 44 сделки",
    bars: [25, 45, 70, 100, 85, 55, 30, 20],
    nav: 1,
  },
];

export const resultMeta: ResultMeta = {
  sources: "3 / 7",
  confidence: "СРЕДНЯЯ",
  cv: "59.7%",
};

export const ranges: Ranges = {
  ads: {
    label: ["ДИАПАЗОН ЦЕН В ОБЪЯВЛЕНИЯХ", "(БЕЗ УЧЁТА РЕМОНТА)"],
    median: "11,29 млн ₽",
    lo: "7,72 млн",
    hi: "14,46 млн",
    marker: { fillLeft: "8%", fillRight: "18%", dotLeft: "58%" },
  },
  deals: {
    label: ["ДИАПАЗОН ЦЕН ПО", "ФАКТИЧЕСКИМ СДЕЛКАМ"],
    median: "6,80 млн ₽",
    lo: "4,30 млн",
    hi: "19,70 млн",
    marker: { fillLeft: "4%", fillRight: "55%", dotLeft: "33%" },
  },
};

// Mini "ЦЕНА × СРОК ПРОДАЖИ" scatter inside the ranges card (viewBox 168×140).
export const scatterMini: ScatterMini = {
  deals: [
    { x: 52, y: 96, r: 2.4 },
    { x: 64, y: 88, r: 2.4 },
    { x: 58, y: 101, r: 2.4 },
    { x: 74, y: 85, r: 2.4 },
    { x: 47, y: 103, r: 2.4 },
    { x: 88, y: 79, r: 2.4 },
    { x: 70, y: 93, r: 2.4 },
    { x: 55, y: 90, r: 2.4 },
    { x: 82, y: 99, r: 2.4 },
    { x: 44, y: 97, r: 2.4 },
  ],
  analogs: [
    { x: 118, y: 48, r: 3 },
    { x: 100, y: 60, r: 3 },
    { x: 132, y: 40, r: 3 },
    { x: 92, y: 66, r: 3 },
    { x: 112, y: 54, r: 3 },
    { x: 142, y: 34, r: 3 },
  ],
  subject: { x: 96, y: 70, r: 3.6 },
  yTicks: [
    { label: "15М", y: 13 },
    { label: "10М", y: 77 },
    { label: "4М", y: 112 },
  ],
  xTicks: [
    { label: "0", x: 34 },
    { label: "90", x: 96 },
    { label: "180", x: 158 },
  ],
};

export const sources: SourceCard[] = [
  { name: "ЦИАН", count: "7", label: "лотов", active: true },
  { name: "Я.НЕДВИЖИМОСТЬ", count: "1", label: "лот", active: true },
  { name: "РОСРЕЕСТР (ВНУТР.)", count: "10", label: "лотов", active: true },
  { name: "АВИТО ОЦЕНКА", count: "—", label: "нет данных", active: false },
  { name: "ДОМКЛИК ПРАЙС", count: "—", label: "нет данных", active: false },
  { name: "RESTATE", count: "—", label: "нет данных", active: false },
];

// ---- 03 SUMMARY -----------------------------------------------------------

export const summary: Summary = {
  rows: [
    { label: "Продажи в доме", value: "2 · 32 дн", dot: "accent", nav: 1 },
    { label: "Аналоги", value: "23 · 6,13 млн", dot: "accent", nav: 2 },
    { label: "Сделки", value: "10 · 5,95 млн", dot: "muted", nav: 2 },
    { label: "Аналитика", value: "67 дн · −3%", dot: "accent", nav: 3 },
  ],
  quality: { sources: "3 / 7", confidence: "средняя", cv: "59.7%" },
};

// ---- OVERLAY 04: ПРОДАЖИ В ДОМЕ -------------------------------------------

export const dkpRows: DkpRow[] = [
  {
    area: "33.9 м²",
    price: "5 950 000 ₽",
    ppm: "175 516",
    ask: "5 272 800 ₽ за 3 дн до",
    delta: "+12.8%",
    deltaColor: tokens.danger,
  },
  {
    area: "35.4 м²",
    price: "4 900 000 ₽",
    ppm: "138 418",
    ask: "5 186 700 ₽ за 3 дн до",
    delta: "−5.5%",
    deltaColor: tokens.success,
  },
  {
    area: "36.2 м²",
    price: "4 200 000 ₽",
    ppm: "116 022",
    ask: "5 186 700 ₽ за 3 дн до",
    delta: "−19.0%",
    deltaColor: tokens.success,
  },
  {
    area: "37.0 м²",
    price: "7 503 227 ₽",
    ppm: "202 790",
    ask: "5 272 800 ₽ за 3 дн до",
    delta: "+42.3%",
    deltaColor: tokens.danger,
  },
  {
    area: "36.8 м²",
    price: "7 140 243 ₽",
    ppm: "194 028",
    ask: "5 272 800 ₽ за 3 дн до",
    delta: "+35.4%",
    deltaColor: tokens.danger,
  },
  {
    area: "42.1 м²",
    price: "6 535 050 ₽",
    ppm: "155 227",
    ask: "5 272 800 ₽ за 3 дн до",
    delta: "+23.9%",
    deltaColor: tokens.danger,
  },
  {
    area: "42.0 м²",
    price: "6 650 000 ₽",
    ppm: "158 333",
    ask: "5 781 600 ₽ за 3 дн до",
    delta: "+15.0%",
    deltaColor: tokens.danger,
  },
  {
    area: "32.5 м²",
    price: "5 362 650 ₽",
    ppm: "165 005",
    ask: "5 325 600 ₽ за 3 дн до",
    delta: "+0.7%",
    deltaColor: tokens.danger,
  },
  {
    area: "38.8 м²",
    price: "4 380 000 ₽",
    ppm: "112 887",
    ask: "5 325 600 ₽ за 3 дн до",
    delta: "−17.8%",
    deltaColor: tokens.success,
  },
  {
    area: "34.9 м²",
    price: "5 000 000 ₽",
    ppm: "143 266",
    ask: "5 254 500 ₽ за 3 дн до",
    delta: "−4.8%",
    deltaColor: tokens.success,
  },
];

export const history: History = {
  houseSales: [
    {
      lot: "2-к. квартира, 50 м², 6/16 эт.",
      priceFrom: "6,25",
      priceTo: "5,98 млн ₽",
      date: "11.07.2025",
      exposure: "32 дн.",
    },
    {
      lot: "2-к. квартира, 60 м², 6/16 эт.",
      priceFrom: "7,29",
      priceTo: "7,09 млн ₽",
      date: "11.07.2025",
      exposure: "31 дн.",
    },
  ],
  dkpHeader: {
    title: "ДКП-сделки на улице Академика Ландау",
    period: "24 мес",
    note: "78% сделок имеют историческую цену в объявлении · медианный торг −36.0%. Данные по улице, не по дому.",
  },
  dkpKpi: { count: "95", median: "140 066", range: "3,1 – 7,5" },
};

// ---- OVERLAY 05: АНАЛОГИЧНЫЕ ОБЪЯВЛЕНИЯ -----------------------------------

export const adRows: AdRow[] = [
  {
    addr: "ул. Академика Ландау, 39",
    meta: "32.5 м² · 1-к · этаж 12/15",
    ppm: "170 769",
    price: "5 550 000",
  },
  {
    addr: "ул. Академика Ландау, 35А/2",
    meta: "33.5 м² · 1-к · этаж 13/25",
    ppm: "174 626",
    price: "5 850 000",
  },
  {
    addr: "ул. Академика Ландау, 38",
    meta: "32.7 м² · 1-к · этаж 10/16",
    ppm: "171 253",
    price: "5 600 000",
  },
  {
    addr: "ул. Академика Ландау, 35",
    meta: "32.7 м² · 1-к · этаж 6/12",
    ppm: "178 999",
    price: "5 853 300",
  },
  {
    addr: "ул. Академика Ландау, 35",
    meta: "37.4 м² · 1-к · этаж 8/12",
    ppm: "149 732",
    price: "5 600 000",
  },
  {
    addr: "ул. Академика Парина, 29",
    meta: "40.5 м² · 1-к · этаж 22/23",
    ppm: "160 493",
    price: "6 500 000",
  },
  {
    addr: "ул. Академика Ландау, 39",
    meta: "32.5 м² · 1-к · этаж 15/15",
    ppm: "146 153",
    price: "4 750 000",
  },
  {
    addr: "ул. Академика Ландау, 39",
    meta: "34.9 м² · 1-к · этаж 9/15",
    ppm: "143 266",
    price: "5 000 000",
  },
  {
    addr: "ул. Академика Парина, 33",
    meta: "37.1 м² · 1-к · этаж 6/14",
    ppm: "160 916",
    price: "5 970 000",
  },
  {
    addr: "ул. Академика Ландау, 34",
    meta: "41.7 м² · 1-к · этаж 22/23",
    ppm: "167 865",
    price: "6 999 999",
  },
];

export const dealRows: DealRow[] = [
  {
    addr: "Екатеринбург, Академика Парина",
    meta: "38.1 м² · 1-к",
    ppm: "161 417",
    price: "6 150 000",
  },
  {
    addr: "Екатеринбург, Академика Ландау",
    meta: "33.9 м² · 1-к",
    ppm: "175 516",
    price: "5 950 000",
  },
  {
    addr: "Екатеринбург, Академика Ландау",
    meta: "39.1 м² · 1-к",
    ppm: "148 338",
    price: "5 800 000",
  },
  {
    addr: "Екатеринбург, Академика Парина",
    meta: "33.8 м² · 1-к",
    ppm: "147 929",
    price: "5 000 000",
  },
  {
    addr: "Екатеринбург, Академика Сахарова",
    meta: "37.1 м² · 1-к",
    ppm: "167 116",
    price: "6 200 000",
  },
  {
    addr: "Екатеринбург, Академика Вавилова",
    meta: "38.8 м² · 1-к",
    ppm: "165 437",
    price: "6 418 972",
  },
  {
    addr: "Екатеринбург, Академика Ландау",
    meta: "42.0 м² · 1-к",
    ppm: "158 333",
    price: "6 650 000",
  },
  {
    addr: "Екатеринбург, Академика Ландау",
    meta: "34.9 м² · 1-к",
    ppm: "143 266",
    price: "5 000 000",
  },
  {
    addr: "Екатеринбург, Академика Парина",
    meta: "32.9 м² · 1-к",
    ppm: "159 574",
    price: "5 250 000",
  },
  {
    addr: "Екатеринбург, Академика Парина",
    meta: "41.2 м² · 1-к",
    ppm: "101 942",
    price: "4 200 000",
  },
];

export const marketAds: MarketAds = {
  kpi: {
    count: "23",
    median: "6,13",
    ppm: "161 351",
    range: "4,7–7,5",
    cv: "45.9%",
  },
  filters: ["Расстояние ≤ 2 км", "Планировка 1-к", "Площадь 32.5 – 41.7 м²"],
};

export const marketDeals: MarketDeals = {
  kpi: {
    count: "10",
    median: "5,95",
    delta: "−3% к рынку",
    range: "4,2 – 6,7",
  },
};

// ---- OVERLAY 06: АНАЛИТИКА ДОМА -------------------------------------------

export const analytics: Analytics = {
  header: { ads: "615 объявлений", radius: "в радиусе 300 м" },
  kpis: [
    {
      label: "СРЕДНЯЯ ЭКСПОЗИЦИЯ",
      value: "67",
      unit: "дн.",
      sub: "по архивным объявлениям",
    },
    {
      label: "СРЕДНИЙ ТОРГ",
      value: "−3.0%",
      color: tokens.success,
      sub: "от начальной до итоговой цены",
    },
    {
      label: "ДОЛЯ СНЯТЫХ",
      value: "69%",
      sub: "421 из 615",
    },
  ],
  sellTimeNote: "Медиана экспозиции по архивным лотам · эталон 177 394 ₽/м²",
  sellTime: [
    {
      tier: "−5% от рынка",
      days: "~63 дн.",
      range: "обычно 18–180 дн.",
      count: "69 аналогов",
      variant: "success",
    },
    {
      tier: "По медиане",
      days: "~65 дн.",
      range: "обычно 18–182 дн.",
      count: "79 аналогов",
      variant: "accent",
    },
    {
      tier: "+5%",
      days: "~78 дн.",
      range: "обычно 16–212 дн.",
      count: "61 аналог",
      variant: "gold",
    },
    {
      tier: "+10%",
      days: "~67 дн.",
      range: "обычно 26–260 дн.",
      count: "57 аналогов",
      variant: "danger",
    },
  ],
  priceHistory: {
    note: "Медиана ₽/м² по годам · только этот дом · Avito + Яндекс (596 лотов)",
    years: ["2022", "2023", "2024", "2025", "2026"],
    avito: "58,75 260,82 470,69 680,69 885,73",
    yandex: "58,75 260,82 470,51 680,42 885,24",
    yTicks: [
      { label: "200k", y: 20 },
      { label: "150k", y: 64 },
      { label: "100k", y: 108 },
      { label: "50k", y: 151 },
      { label: "0k", y: 195 },
    ],
  },
  scatterDetail: {
    note: "16 сделок и 6 аналогов в радиусе 300 м",
    deals: [
      { x: 150, y: 210, r: 4.5 },
      { x: 200, y: 196, r: 4.5 },
      { x: 175, y: 222, r: 4.5 },
      { x: 250, y: 188, r: 4.5 },
      { x: 220, y: 204, r: 4.5 },
      { x: 300, y: 176, r: 4.5 },
      { x: 270, y: 200, r: 4.5 },
      { x: 330, y: 166, r: 4.5 },
      { x: 360, y: 182, r: 4.5 },
      { x: 195, y: 214, r: 4.5 },
      { x: 285, y: 190, r: 4.5 },
      { x: 160, y: 200, r: 4.5 },
      { x: 345, y: 198, r: 4.5 },
      { x: 240, y: 172, r: 4.5 },
      { x: 315, y: 186, r: 4.5 },
      { x: 180, y: 232, r: 4.5 },
    ],
    analogs: [
      { x: 600, y: 96, r: 5.5 },
      { x: 540, y: 124, r: 5.5 },
      { x: 670, y: 84, r: 5.5 },
      { x: 500, y: 142, r: 5.5 },
      { x: 640, y: 104, r: 5.5 },
      { x: 730, y: 70, r: 5.5 },
    ],
    subject: { x: 445, y: 150, r: 6 },
    yTicks: [
      { label: "15М", y: 24 },
      { label: "12М", y: 81 },
      { label: "9М", y: 138 },
      { label: "6М", y: 195 },
      { label: "4М", y: 252 },
    ],
    xTicks: [
      { label: "0", x: 60 },
      { label: "45", x: 265 },
      { label: "90", x: 470 },
      { label: "135", x: 675 },
      { label: "180", x: 880 },
    ],
  },
};

// ---- OVERLAY 07: ПРЕДЫДУЩИЕ ОЦЕНКИ ----------------------------------------

export const cacheRows: CacheRow[] = [
  {
    id: "fixture-1",
    addr: "ул. Малышева, 30",
    time: "12:45:02",
    src: "3 / 7",
    status: "свежий",
    statusColor: tokens.success,
    params: "2 комн · 54 м² · 5/9 эт.",
  },
  {
    id: "fixture-2",
    addr: "ул. Куйбышева, 48",
    time: "12:31:50",
    src: "4 / 7",
    status: "свежий",
    statusColor: tokens.success,
    params: "3 комн · 72 м² · 12/16 эт.",
  },
  {
    id: "fixture-3",
    addr: "ул. Академика Ландау, 35",
    time: "11:58:14",
    src: "2 / 7",
    status: "свежий",
    statusColor: tokens.success,
    params: "1 комн · 38 м²",
  },
  {
    id: "fixture-4",
    addr: "ул. 8 Марта, 120",
    time: "09:12:40",
    src: "3 / 7",
    status: "устаревает",
    statusColor: tokens.warn,
    params: "студия · 24 м² · 3/5 эт.",
  },
  {
    id: "fixture-5",
    addr: "пр. Ленина, 5",
    time: "вчера 18:04",
    src: "5 / 7",
    status: "устарел",
    statusColor: tokens.danger,
    params: "2 комн · 61,5 м²",
  },
  {
    id: "fixture-6",
    addr: "ул. Белинского, 86",
    time: "вчера 14:22",
    src: "2 / 7",
    status: "устарел",
    statusColor: tokens.danger,
    params: "4 комн · 95 м² · 7/10 эт.",
  },
];

export const cacheKpi: CacheKpi[] = [
  { label: "ВСЕГО ОЦЕНОК", value: "128", sub: "за последние 30 дней" },
  {
    label: "СРЕДНЯЯ ЦЕНА ОЦЕНОК",
    value: "9,6",
    unit: "млн ₽",
    sub: "по проведённым оценкам",
  },
  { label: "ПОВТОРНЫЕ АДРЕСА", value: "18", unit: "%", sub: "доля переоценок" },
];

// ---- INPUTS / DROPDOWNS ---------------------------------------------------

export const dropdownOptions: DropdownOptions = {
  rooms: ["1", "2", "3", "4", "5+"],
  houseType: [
    "Не указано",
    "Панельный",
    "Кирпичный",
    "Монолитный",
    "Блочный",
    "Монолитно-кирпичный",
  ],
  repair: [
    "Не указано",
    "Без отделки",
    "Требует ремонта",
    "Удовлетворительный",
    "Хороший",
    "Отличный",
  ],
  radius: ["300 м", "500 м", "1000 м", "2000 м"],
  crm: [
    "Не заполнять",
    "Создать сделку",
    "Привязать к контакту",
    "Экспорт в CRM",
  ],
};

// Note: the pre-wiring `locationFactors` fixture (fabricated 0.87 coefficient
// + base/coef/result formula + positives/negatives) lived here — removed
// together with the location-index rewrite. LocationDrawer now reads
// `LocationData` produced by `mapLocation` (./mappers.ts) from the real
// GET /trade-in/location-index response; its own default/unwired fixture is
// LOCATION_FIXTURE in ./LocationDrawer.tsx.

// ---- NAV / CHROME ---------------------------------------------------------

export const navLabels: string[] = [
  "ОЦЕНКА",
  "ПРОДАЖИ В ДОМЕ",
  "АНАЛОГИЧНЫЕ ОБЪЯВЛЕНИЯ",
  "АНАЛИТИКА",
  "ПРЕДЫДУЩИЕ ОЦЕНКИ",
];

export const overlayTitles: string[] = [
  "",
  "ПРОДАЖИ В ДОМЕ",
  "АНАЛОГИЧНЫЕ ОБЪЯВЛЕНИЯ",
  "АНАЛИТИКА ДОМА",
  "ПРЕДЫДУЩИЕ ОЦЕНКИ",
];

export const overlayNums: string[] = ["", "04", "05", "06", "07"];

export const user: User = {
  name: "Андрей Петров",
  org: "Брусника",
  email: "a.petrov@mera.ru",
  initials: "АП",
  reports: 128,
};

export const version = "v2.0.6";
