{
  "schemaVersion": 1,
  "id": "P27-C01",
  "title": "Прямая кухня: корпуса и фасады считаются отдельно",
  "author": {
    "id": "P27",
    "name": "Филипп Нестеров"
  },
  "specialty": "Калькуляторы и подборщики для продаж",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P27-C01",
    "title": "Кухня по размерам",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "В линейной модели прямой кухни важно не смешать корпус и фасад в одну непрозрачную ставку. Исходные значения: 3,2 м, 18 000 и 6000 ₽ за метр.",
  "decision": "Умножаю длину на каждую ставку независимо. Сумма состоит из 57 600 ₽ за корпуса и 19 200 ₽ за фасады. Длину ограничил 1–6 м; угловая кухня требует другой модели.",
  "constraint": "Самостоятельный калькулятор использует заданные допущения. Он не является коммерческой сметой, инженерным заключением или подтверждением условий поставщика.",
  "steps": [
    "Оставить исходные значения: 57 600 + 19 200 = 76 800 ₽.",
    "Изменить длину на 4 м: сумма становится 96 000 ₽.",
    "Ввести длину 0: расчет блокируется у поля."
  ],
  "inspection": [
    "Оставить исходные значения: 57 600 + 19 200 = 76 800 ₽.",
    "Изменить длину на 4 м: сумма становится 96 000 ₽.",
    "Ввести длину 0: расчет блокируется у поля.",
    "Скачать состояние: исходные ставки и видимый результат включены в JSON."
  ],
  "sample": {
    "headers": [
      "Действие",
      "Наблюдаемый результат"
    ],
    "rows": [
      [
        "1",
        "Оставить исходные значения: 57 600 + 19 200 = 76 800 ₽."
      ],
      [
        "2",
        "Изменить длину на 4 м: сумма становится 96 000 ₽."
      ],
      [
        "3",
        "Ввести длину 0: расчет блокируется у поля."
      ],
      [
        "4",
        "Скачать состояние: исходные ставки и видимый результат включены в JSON."
      ]
    ]
  },
  "sampleNote": "Самостоятельный проект на подготовленных исходных данных. Действия выполняются локально.",
  "caseStudy": {
    "role": "Разработка расчётной модели",
    "contribution": "Реализовал открытые формулы, промежуточные значения, проверку диапазонов и граничные случаи именно этой модели.",
    "objective": "Длина 3,2 м и две ставки дают проверяемую сумму 76 800 ₽.",
    "problem": "В линейной модели прямой кухни важно не смешать корпус и фасад в одну непрозрачную ставку. Исходные значения: 3,2 м, 18 000 и 6000 ₽ за метр.",
    "result": "Калькулятор показывает обе составляющие и сумму 76 800 ₽. Изменение ставки фасадов не меняет стоимость корпусов.",
    "deliverables": [
      "Проверяемая модель",
      "Сохраняемый результат взаимодействия",
      "Исходные данные и порядок самостоятельной проверки"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Две ставки вместо одной непрозрачной суммы",
        "text": "Умножаю длину на каждую ставку независимо. Сумма состоит из 57 600 ₽ за корпуса и 19 200 ₽ за фасады. Длину ограничил 1–6 м; угловая кухня требует другой модели."
      },
      {
        "type": "text",
        "title": "Меняется только фасад",
        "text": "Если ставка фасада вырастет с 6000 до 7000 ₽/м при длине 3,2 м, прибавка составит 3200 ₽. Корпуса останутся 57 600 ₽, итог станет 80 000 ₽."
      },
      {
        "type": "callout",
        "title": "Граница работы",
        "text": "Самостоятельный калькулятор использует заданные допущения. Он не является коммерческой сметой, инженерным заключением или подтверждением условий поставщика."
      }
    ]
  },
  "deliverable": {
    "type": "calculator",
    "entry": "/catalogue/deliverables/p27-c01/index.html",
    "label": "Открыть работающий результат",
    "files": [
      {
        "path": "/catalogue/deliverables/p27-c01/index.html",
        "name": "Интерактивный результат",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p27-c01/source.json",
        "name": "Исходные условия и модель",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p27-c01/README.html",
        "name": "Повторить проверку",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p27-c01/starter-data.json",
        "name": "Исходный набор для повторного использования",
        "mimeType": "application/json"
      }
    ],
    "summary": "Калькулятор показывает обе составляющие и сумму 76 800 ₽. Изменение ставки фасадов не меняет стоимость корпусов."
  },
  "calculator": {
    "kind": "kitchen",
    "title": "Предварительный состав прямой кухни",
    "inputs": [
      {
        "id": "length",
        "label": "Длина модулей",
        "type": "number",
        "value": 3.2,
        "unit": "м",
        "min": 1,
        "max": 6,
        "step": 0.1
      },
      {
        "id": "bodyRate",
        "label": "Корпуса за метр",
        "type": "number",
        "value": 18000,
        "unit": "₽/м",
        "min": 0,
        "max": 100000,
        "step": 100
      },
      {
        "id": "frontRate",
        "label": "Фасады за метр",
        "type": "number",
        "value": 6000,
        "unit": "₽/м",
        "min": 0,
        "max": 100000,
        "step": 100
      }
    ],
    "formula": "Корпуса = длина × ставка корпусов; фасады = длина × ставка фасадов; сумма = корпуса + фасады.",
    "assumptions": [
      "Только прямая компоновка 1–6 м.",
      "Ставки — редактируемые расчетные допущения.",
      "Столешница, техника, монтаж, доставка и нестандарт не включены."
    ],
    "tests": [
      {
        "values": {
          "length": 3.2,
          "bodyRate": 18000,
          "frontRate": 6000
        },
        "expected": {
          "body": 57600,
          "front": 19200,
          "total": 76800
        }
      },
      {
        "values": {
          "length": 0,
          "bodyRate": 18000,
          "frontRate": 6000
        },
        "expected": {
          "error": true
        }
      }
    ]
  },
  "takeaway": "Калькулятор показывает обе составляющие и сумму 76 800 ₽. Изменение ставки фасадов не меняет стоимость корпусов.",
  "capabilities": [
    "completed_calculator",
    "live_calculation",
    "input_validation"
  ],
  "externalConnections": []
}
