Направление работ: Widget Код раздела: 1.4 Раздел: Календарь > Дополнительные сценарии отображения часов Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 21.07.26
1. Назначение
Раздел описывает дополнительные правила представления времени в календаре виджета: состояния часовых ячеек, отображение цены и акций по часам, строгие интервалы бронирования, слияние выбранных часов, рабочие часы и минимальную длительность бронирования.
Раздел дополняет варианты отображения календаря 1.1–1.3 в части представления часов и не описывает сам выбор варианта календаря.
Состав рабочих часов, правил бронирования и цен определяется связанными разделами Back: 2.2 Площадки партнеров, Back: 2.4.1 Условия создания и Back: 2.6 Цены.
2. Ключевые понятия
Часовая ячейка — элемент сетки календаря, соответствующий одному часу, с ценой и состоянием.
Строгий интервал — фиксированный интервал бронирования, который бронируется целиком; в сетке показывается слитой ячейкой.
Рабочие часы — интервал доступного времени площадки по дням недели.
Минимальная длительность бронирования — минимальное число часов, необходимое для бронирования.
Акционный час — час со скидочной ценой, выделяемый в сетке.
3. Scope
Входит
S1: Состояния и представление часовых ячеек
S2: Строгие интервалы и слияние выбранных часов
S3: Рабочие часы и минимальная длительность
S4: Ручной выбор времени и режим «Весь день»
Не входит
- Widget 1.1 Отображение по партнерской зоне — вариант отображения календаря.
- Widget 1.2 Отображение по объекту — вариант отображения календаря.
- Widget 1.3 Отображение по площадке — вариант отображения календаря.
- Back: 2.2 Площадки партнеров — рабочие часы площадки.
- Back: 2.4.1 Условия создания — правила бронирования и минимальная длительность.
- Back: 2.6 Цены — цены и акции по слотам.
4. BR
Указаны в пункте 4 разделов Back: 2.2 Площадки партнеров, Back: 2.4.1 Условия создания и Back: 2.6 Цены.
5. Функциональные требования (UC + FR)
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR1.4-1 | Клиент просматривает часы в сетке | Интерфейс показывает состояния часовых ячеек: доступна с ценой, выбрана, занята или перерыв (серая некликабельная), нерабочие часы (недоступна с бордером). | 1 | ||
| S1: FR1.4-2 | Клиент видит акционные часы | Интерфейс выделяет акционные (скидочные) часы отдельным цветом цены. | 2 | ||
| S2: FR1.4-3 | Клиент видит строгий интервал | Интерфейс показывает строгий интервал бронирования слитой ячейкой с диапазоном времени и суммарной ценой; такой интервал выбирается целиком. | 1 | ||
| S2: FR1.4-4 | Клиент выбирает несколько часов | Интерфейс сливает несколько выбранных подряд часов в один блок с диапазоном времени и суммарной стоимостью. | 1 | ||
| S3: FR1.4-5 | Клиент выбирает время в рамках рабочих часов | Интерфейс ограничивает доступные для выбора часы рабочими часами площадки по дням недели; часы вне рабочего окна показываются недоступными. | 1 | ||
| S3: FR1.4-6 | Клиент выбирает интервал меньше минимального | Интерфейс учитывает минимальную длительность бронирования по дню: короче минимальной длительности выбор не завершается (автоматический добор соседних часов описан в 1.1). | 1 | ||
| S4: FR1.4-7 | Клиент задает время вручную | Интерфейс позволяет выбрать время вручную в пределах рабочих часов и поддерживает режим «Весь день», который подставляет рабочее окно площадки или полный день. | 2 |
6. Открытые вопросы
| ID | Источник | Вопрос | Кому | Статус |
|---|---|---|---|---|
| OQ1.4-1 | Код | Состояния «занята» и «перерыв» показываются одинаково (общий серый вид), без визуального различия. Подтвердить, нужно ли различать перерыв и занятость в сетке. \ features/booking-grid/types/booking-grid.types.ts:9 | Бизнес | Open |