{
  "schemaVersion": 1,
  "id": "P21-C04",
  "title": "Выбор услуги и подходящего барбера",
  "author": {
    "id": "P21",
    "name": "Андрей Кравцов"
  },
  "specialty": "Сайты салонов с онлайн-записью",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P21-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": "На «Бороду и контур» можно записаться только к Максиму. Запись хранит услугу, мастера и выбранный слот; повтор занятого слота получает понятный отказ.",
    "deliverables": [
      "Услуги и специалисты",
      "Сохраняемый результат взаимодействия",
      "Исходные данные и порядок самостоятельной проверки"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "У мастера свой набор услуг",
        "text": "После смены услуги пересобираю список мастеров и сбрасываю время. Не оставляю несовместимого человека в скрытом состоянии. В карточке сразу видно, почему комплект стрижки и бороды занимает больше времени."
      },
      {
        "type": "text",
        "title": "Когда меняют услугу",
        "text": "После перехода со стрижки на комплект со стрижкой бороды форма снова требует время. В итоговую карточку попадают новый состав услуги и выбранный барбер, а прежнее скрытое значение не сохраняется."
      },
      {
        "type": "callout",
        "title": "Граница работы",
        "text": "Это локальная модель расписания одного дня. Она не проверяет реальные кабинеты и не отправляет запись сотруднику."
      }
    ]
  },
  "deliverable": {
    "type": "website",
    "entry": "/catalogue/deliverables/p21-c04/index.html",
    "label": "Открыть работающий результат",
    "files": [
      {
        "path": "/catalogue/deliverables/p21-c04/index.html",
        "name": "Интерактивный результат",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p21-c04/source.json",
        "name": "Исходные условия и модель",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p21-c04/README.html",
        "name": "Повторить проверку",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p21-c04/starter-data.json",
        "name": "Исходный набор для повторного использования",
        "mimeType": "application/json"
      }
    ],
    "summary": "На «Бороду и контур» можно записаться только к Максиму. Запись хранит услугу, мастера и выбранный слот; повтор занятого слота получает понятный отказ."
  },
  "takeaway": "На «Бороду и контур» можно записаться только к Максиму. Запись хранит услугу, мастера и выбранный слот; повтор занятого слота получает понятный отказ.",
  "capabilities": [
    "completed_website"
  ],
  "externalConnections": []
}
