{
  "schemaVersion": 1,
  "id": "P26-C04",
  "title": "Запись из пакета с возвратом занятия",
  "author": {
    "id": "P26",
    "name": "Руслан Сафин"
  },
  "specialty": "Мини-приложения для повторных заказов",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P26-C04",
    "title": "Клуб спортивной студии",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "У пакета четыре занятия. После записи остаток должен уменьшиться, а после разрешенной отмены — восстановиться, без повторного возврата.",
  "decision": "Связал расход с конкретной записью. Кнопка отмены есть только у активного результата; завершенная отмена больше не участвует в списке возвратов. Правило этого прототипа допускает отмену любой активной записи.",
  "constraint": "Это кабинет одного локального профиля. Внешний заказ, оплата и проверка реального аккаунта не выполняются; состояние можно сбросить кнопкой проекта.",
  "steps": [
    "Открыть конкретное действие: перед подтверждением виден его состав.",
    "Подтвердить: результат появляется в истории с исходными полями.",
    "Повторить активный выбор: второй результат не создается."
  ],
  "inspection": [
    "Открыть конкретное действие: перед подтверждением виден его состав.",
    "Подтвердить: результат появляется в истории с исходными полями.",
    "Повторить активный выбор: второй результат не создается.",
    "Отменить действие: статус меняется, единицы возвращаются только один раз."
  ],
  "sample": {
    "headers": [
      "Действие",
      "Наблюдаемый результат"
    ],
    "rows": [
      [
        "1",
        "Открыть конкретное действие: перед подтверждением виден его состав."
      ],
      [
        "2",
        "Подтвердить: результат появляется в истории с исходными полями."
      ],
      [
        "3",
        "Повторить активный выбор: второй результат не создается."
      ],
      [
        "4",
        "Отменить действие: статус меняется, единицы возвращаются только один раз."
      ]
    ]
  },
  "sampleNote": "Самостоятельный проект на подготовленных исходных данных. Действия выполняются локально.",
  "caseStudy": {
    "role": "Разработка локального приложения",
    "contribution": "Разработал отдельное подтверждение, историю действий, локальную защиту повтора и отмену с обратным изменением баланса.",
    "objective": "Подтверждение резервирует единицу, отмена возвращает ее один раз.",
    "problem": "У пакета четыре занятия. После записи остаток должен уменьшиться, а после разрешенной отмены — восстановиться, без повторного возврата.",
    "result": "Одна запись дает остаток 3, ее отмена возвращает 4. Повторного возврата по уже отмененной записи нет.",
    "deliverables": [
      "Быстрые действия",
      "Сохраняемый результат взаимодействия",
      "Исходные данные и порядок самостоятельной проверки"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Возврат привязан к записи",
        "text": "Связал расход с конкретной записью. Кнопка отмены есть только у активного результата; завершенная отмена больше не участвует в списке возвратов. Правило этого прототипа допускает отмену любой активной записи."
      },
      {
        "type": "text",
        "title": "Отмена возвращает ровно одно занятие",
        "text": "Исходные четыре занятия после записи становятся тремя, после отмены — снова четырьмя. Повторной активной кнопки отмены для этой записи уже нет."
      },
      {
        "type": "callout",
        "title": "Граница работы",
        "text": "Это кабинет одного локального профиля. Внешний заказ, оплата и проверка реального аккаунта не выполняются; состояние можно сбросить кнопкой проекта."
      }
    ]
  },
  "deliverable": {
    "type": "app",
    "entry": "/catalogue/deliverables/p26-c04/index.html",
    "label": "Открыть работающий результат",
    "files": [
      {
        "path": "/catalogue/deliverables/p26-c04/index.html",
        "name": "Интерактивный результат",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p26-c04/source.json",
        "name": "Исходные условия и модель",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p26-c04/README.html",
        "name": "Повторить проверку",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p26-c04/starter-data.json",
        "name": "Исходный набор для повторного использования",
        "mimeType": "application/json"
      }
    ],
    "summary": "Одна запись дает остаток 3, ее отмена возвращает 4. Повторного возврата по уже отмененной записи нет."
  },
  "takeaway": "Одна запись дает остаток 3, ее отмена возвращает 4. Повторного возврата по уже отмененной записи нет.",
  "capabilities": [
    "completed_app"
  ],
  "externalConnections": []
}
