01Письма Peerspace и Giggster сами становятся бронями
Скрипт в почте студии раз в пять минут пересылает новые письма площадок, а разбирают их правила, без ИИ. Запрос — не бронь: «забронировано» даёт оплаченную бронь с суммой, комиссией площадки и выплатой студии, письмо о переносе двигает уже заведённую, выплата сверяется с бронью по гостю и сумме. Сама записывается только бронь из письма, которое прошло проверку DMARC и прочитано целиком; остальное ждёт человека в «Захвате» с красной пометкой. Накладку из письма система не отклоняет — площадка её уже продала, — а ставит срочную задачу на сегодня.
02Девятнадцать календарей и одна правда
Источник правды — база SetHub, а 19 календарей Google — табло «занято», которое читают сайт, Peerspace и Giggster. Бронь всей студии закрывает все 16 сетов внутри неё, любой сет закрывает студию, а крыша и площадка с машиной — только себя. События ставит, двигает и снимает скрипт студии раз в минуту, и в них нет ни телефонов, ни почты, ни сумм. События, которые ставят сами площадки, не дублируются: SetHub дописывает к ним свой блок. Накладка — отказ везде: в форме, в «Захвате», в приложении и в командах ИИ.
03«Захват»: текст, фото, документ или голос становятся черновиком
Что прислали руками — текст, снимок чека, PDF, голосовое в Telegram-бот, запрос из Make или Zapier, — попадает в одну очередь и ждёт подтверждения. Обычный текст и Word разбирают правила без ИИ: дату, время, сумму и депозит, контакты, площадку, источник, сотрудника, известного клиента; угаданное подсвечивается. Модель нужна только тому, чего нет текстом: голосу, снимкам, сканам. То же сообщение от того же человека в течение десяти минут вернёт уже заведённое, а не создаст дубль.
04Бронь на сайте: время держится, пока гость платит
Гость выбирает сет, день и время по живой занятости — она считается по броням всех каналов. «Book now» ставит предварительную бронь и держит время 35 минут: проверка «свободно» и запись идут под блокировкой базы, поэтому два гостя один час не возьмут. Дальше — Stripe Checkout; вебхук с проверкой подписи подтверждает именно эту бронь, а неоплаченные удержания снимает таймер. Цену считает сервер: −10 % от 4 часов, −15 % от 8, полный день по фиксированной цене, добавки, уборка. Если в середине занято, бронь делится в обход: с 12 до 4 при занятом часе с 2 до 3 — это 12–2 и 3–5 по цене одной брони, а перерыв не оплачивается.
05Письма гостю: код от двери — за сутки
Сразу после брони гость получает подтверждение: бронь, строки суммы, правила студии и чек в PDF — без кода от двери. За сутки до начала приходит напоминание с кодом, этажом и видео, как войти; если бронь сделана меньше чем за сутки, всё приходит одним письмом. Перенос переставляет напоминание, отмена его снимает. Письма уходят из ящика самой студии, до 1000 в сутки, гостям — первыми; коды стираются из очереди сразу после отправки. Для съёмочной группы — подписанная ссылка: время, адрес, «как войти» и «добавить в календарь», а после конца съёмки — «That’s a wrap».
06Кабинет гостя: вход без пароля, бонусы, абонементы
Вход — шестизначный код на почту: десять минут и пять попыток. В кабинете — свои брони, «забронировать снова» с тем же сетом, часами и добавками, чек в PDF и событие для календаря. Скидка растёт с числом визитов; абонемент — подписка Stripe с часами на месяц, есть пакеты часов и подарочные карты: код из 16 знаков хранится только хешем, а срока у карты нет — так требует закон Калифорнии. После съёмки приходит письмо с оценкой в пять звёзд; ссылку на отзыв в Google видят все оценившие, а не только довольные: выборочно просить хорошие отзывы Google запрещает.
07Запросы, задачи и сроки — без чатов
Запрос получает номер SH-xxxx и идёт по этапам: новый, в разговоре, ждём депозит, подтверждён, завершён или потерян; уровень внимания считается, а не хранится, и очередь менеджера собирается тем же правилом. Срок и исполнителя задачи ставят владелец и менеджер; сотрудник срок не правит, а просит перенос с датой и причиной, и запрет стоит на сервере, а не в форме. Напоминания приходят за час до срока, при просрочке и каждое утро по часам студии. Оповещения — письмом-сводкой, push в браузер, в Telegram и на телефон напрямую через Apple и Google; задачу можно закрыть кнопкой прямо в уведомлении.
08Четыре роли — права проверяет сервер
Владелец видит всё. Главный менеджер — операционку и деньги бизнеса, но не личные траты владельца. Клиент-менеджер — клиентов, брони с суммами и запросы, без доходов и расходов студии. Сотрудник — задачи, расписание и «Захват», без денег вообще: в приложение ему приходит день без сумм, оплаты, источника и контактов гостя. Один модуль ролей проверяют страницы, сервер, мобильные API и 26 команд для ИИ-помощников — ChatGPT и Claude подключаются по MCP со входом через OAuth, и ни одна команда ничего не удаляет. Смена пароля или выключение учётной записи гасит сессии, ключи телефонов и доступы ИИ.
09Два приложения из одной кодовой базы
«Set Hub Team» — для сотрудников: вход по Face ID или отпечатку, снимки экрана запрещены, ключ лежит только в связке ключей этого телефона, данные клиентов — только в памяти. Виджет «Сегодня» и экран блокировки показывают время и площадку без имён гостей и сумм, а «Захват» открывается одним касанием из Пункта управления. «Set Hub» — для гостей: бронь на ленте времени, подбор сета по фото-референсу, золотой час на крыше по формуле NOAA и прогнозу погоды, «как войти» за Face ID — работает даже в подвале без сети. Оба собраны и проверены на симуляторе iPhone и эмуляторе Android; публикация в App Store и Google Play — следующий шаг.