{
  "id": "P27-C02",
  "mode": "calculator",
  "theme": "workspace",
  "brand": "РАСЧЁТ / Филипп Нестеров",
  "title": "Печать: подготовка отдельно от тиража",
  "lead": "Фиксированная подготовка не умножается на число экземпляров.",
  "section": "Проверяемая модель",
  "calculator": {
    "calculator": {
      "kind": "print",
      "title": "Тираж и послепечатная обработка",
      "inputs": [
        {
          "id": "quantity",
          "label": "Тираж",
          "type": "number",
          "value": 1000,
          "unit": "шт.",
          "min": 1,
          "max": 100000,
          "step": 1
        },
        {
          "id": "setup",
          "label": "Подготовка",
          "type": "number",
          "value": 1500,
          "unit": "₽",
          "min": 0,
          "max": 100000,
          "step": 100
        },
        {
          "id": "printRate",
          "label": "Печать экземпляра",
          "type": "number",
          "value": 5,
          "unit": "₽/шт.",
          "min": 0,
          "max": 10000,
          "step": 0.1
        },
        {
          "id": "finishRate",
          "label": "Обработка экземпляра",
          "type": "number",
          "value": 2,
          "unit": "₽/шт.",
          "min": 0,
          "max": 10000,
          "step": 0.1
        }
      ],
      "formula": "Подготовка + тираж × (печать экземпляра + обработка экземпляра). Итог округляется до копеек.",
      "assumptions": [
        "Один формат и один материал во всем расчете: A5, 150 г/м² в образце.",
        "Цены условные; тираж и обработка изменяются независимо.",
        "Нулевая стоимость обработки означает явно выбранный вариант без обработки."
      ],
      "tests": [
        {
          "values": {
            "quantity": 1000,
            "setup": 1500,
            "printRate": 5,
            "finishRate": 2
          },
          "expected": {
            "print": 5000,
            "finish": 2000,
            "total": 8500
          }
        },
        {
          "values": {
            "quantity": 1000,
            "setup": 1500,
            "printRate": 5,
            "finishRate": 0
          },
          "expected": {
            "total": 6500
          }
        },
        {
          "values": {
            "quantity": 0
          },
          "expected": {
            "error": true
          }
        }
      ]
    }
  }
}
