Прайс 2.0: универсальный конструктор позиций и продажа времени онлайн
✅ СУТЬ Что и почём продаётся гостю онлайн, переехало из тарифов броней в ПРАЙС — туда, где уже живёт цена кассы. Раньше цена дублировалась: клуб поднимал её в кассе, прайс обновлялся синком, а копия в тарифе оставалась старой — и гость платил вчерашнюю цену, молча.
ЧТО СДЕЛАНО • Конструктор позиции в карточке прайса: тип (фикс / за единицу / за время), опции по типу, себестоимость, блок «Продажа онлайн». • «Гость выбирает количество» разводит ПАКЕТ и ПОЧАСОВОЙ без нового типа цены. • Зоны позиции: один и тот же час в ВИП и общем зале стоит по-разному. Гость видит одну карточку «3 часа» с ценой «от», сумма считается по КАЖДОМУ месту. • Схема зала гасит места, для зоны которых цены нет, — до выбора, а не отказом на сумме. • Свои позиции и папки: «+ Позиция» и «+ Папка» — прайс больше не только витрина кассы. Заведение без кассы заводит позиции руками. • Окно действия у позиции: дни недели и часы («будни до 17:00», ночь через полночь) — вместо приписки в названии. • Фильтры и бейджи в списке: «онлайн · зон N», «своя», «не хватает данных», «только на стойке», «пропала из кассы». Скрытые позиции наконец видно. • Из Gizmo читается пометка «продаёт администратор», прочие поля кассы видны в блоке «Как настроено в кассе» — ничего не выбрасываем молча. • В настройках броней остался тумблер «Продавать время онлайн» и предоплата, список тарифов и три кнопки импорта удалены. • Право «Изменять прайс» (price.manage): раньше POST в прайс проходил по праву просмотра. • Колокольчик: позиция пропала из кассы, а продавалась; у зоны нет цены; касса взяла ручные позиции под себя. • Таблица booking_rates удалена, тарифы перенесены в прайс (миграция 059).