Реестр FR-001 – FR-026
Гость просматривает карту и список станций без входа
Неавторизованный посетитель может изучать карту, список, карточки станций и портов. Любое действие, создающее финансовое или командное последствие, требует входа.
Вход по телефону и SMS с версионированными согласиями
Вход выполняется по номеру телефона и одноразовому коду. Перед продолжением фиксируется версия согласия; неверный, просроченный код и лимит попыток обрабатываются явно.
Список автомобилей и выбор типа разъёма
Пользователь ведёт список демонстрационных автомобилей, выбирает основной автомобиль и тип разъёма. Неполные параметры не блокируют просмотр каталога, но прогноз стоимости и времени помечается приблизительным.
Фильтрация по времени, разъёму, мощности, цене и доступности
Фильтры должны менять набор станций и портов, объяснять пустой результат и не показывать конфликтующий или недостоверный порт как доступный.
Карточка станции с адресом, часами, подъездом, портами и тарифом
Карточка показывает идентификатор, адрес, часы, подсказки по подъезду, все физические порты, разъёмы, мощность, статус, актуальность и тариф. Для закрытой или неисправной станции запуск не предлагается.
Короткая и плановая бронь через атомарный hold
Выбор интервала создаёт временное удержание слота. Подтверждение оплаты атомарно превращает hold в бронь; конкурирующие заявки не могут подтвердить один интервал дважды.
Освобождение hold по истечении и обработка позднего webhook
Просроченный hold освобождает слот. Позднее платёжное событие не создаёт бронь, конфликтующую с уже подтверждённой; операция уходит на возврат или сверку.
Отмена и неявка по согласованным правилам D02
Отмена и неявка работают по правилам, которые должен утвердить заказчик. До решения D02 автоматические удержания за неявку не включаются.
Баланс, резервы и журнал EcoCoin
Все денежные изменения отражаются неизменяемыми проводками. Доступный остаток учитывает резервы и не уходит ниже нуля; каждая сумма связана с бизнес-операцией.
Пополнение СБП/картой по серверно подтверждённому webhook
Пополнение инициируется через провайдера, но баланс меняется только после проверенного серверного события. Возврат из платёжной страницы не считается подтверждением.
Раздельный учёт брони, энергии и возврата резерва
Стоимость брони, стоимость энергии и возврат неиспользованного резерва отражаются отдельными строками и сходятся с финансовыми проводками.
Проверки перед запуском зарядки
До отправки команды Start проверяются QR, календарь, совместимость разъёма, доступность порта, телеметрия, баланс и отсутствие второй сессии.
Активная сессия только после подтверждения станции
После нажатия Start интерфейс показывает промежуточный статус. Статус ACTIVE устанавливается только после подтверждения фактической подачи энергии.
Показания энергии, мощности, времени и актуальности
Экран активной сессии показывает объём, текущую мощность, прошедшее время, последнее обновление и актуальность данных. После фона или перезапуска состояние восстанавливается с сервера.
Добавление объёма с проверкой следующей брони
Пользователь может увеличить требуемый объём, только если до следующей брони и технического буфера достаточно времени. При нехватке интервала изменение не фиксируется.
Остановка и финальный расчёт по фактическим показаниям
Остановка проходит через STOP_REQUESTED и STOPPING. Итог считается по подтверждённым финальным показаниям и тарифному снимку; неиспользованный резерв освобождается, сомнительные данные уходят на сверку.
Освобождение места не предполагается без подтверждения
Если фактическое освобождение парковочного места не подтверждено, интерфейс показывает «Место может быть занято» и не выдаёт порт за гарантированно свободный.
История связывает бронь, сессию, платёж, проводки и чек
История и детали операции позволяют перейти по стабильным ID между бронью, сессией, платежом, финансовыми проводками и чеком.
Push и in-app уведомления ведут к нужному объекту
Уведомления содержат понятный статус и ссылку на связанную бронь, сессию, чек или обращение. Отказ от push не скрывает событие из приложения.
Поддержка получает контекст брони и сессии
Обращение передаёт станцию, порт, бронь и сессию, чтобы оператор видел контекст и связанные ID без дополнительных вопросов.
Админка управляет каталогом, тарифами, календарём и инцидентами
Оператор и администратор управляют портами, календарём, тарифами и инцидентами. История тарифа не меняет уже начатую сессию; каждое действие аудируется.
Идемпотентность платежей, команд и событий
Повтор одной логической операции возвращает прежний результат и не создаёт второй финансовый эффект, вторую бронь или вторую команду.
Восстановление состояния после потери связи
Потеря сети в приложении не завершает физическую зарядку. После восстановления связи приложение получает серверное состояние сессии и показывает актуальный статус.
Гостевая оплата без установки приложения
Возможность оплатить и запустить зарядку без установки приложения требует отдельного жизненного цикла, возврата остатка и поддержки. Реализуется только после решения D11.
Платный простой и автоматические компенсации
Начисление за простой требует достоверного подтверждения освобождения места, ставки и процесса оспаривания. До D05 функция выключена.
Закрытые дворы, шлагбаумы и распознавание номеров
Доступ через закрытые территории и ANPR — отдельный проект с оборудованием, правилами обработки данных и интеграциями. В MVP не входит.
Статус «Источник» означает, что требование присутствует в исходном ТЗ. Статус «Показано в приложении» не означает, что сценарий пройден на реальном оборудовании.