Платформа (консоль оператора)
Это специальный раздел только для оператора платформы CarsEXP — человека, который управляет всеми автосервисами сразу (не одним конкретным). Здесь видны все зарегистрированные автосервисы (тенанты), их выручка, тарифы, долги по счетам и журнал того, кто и когда заходил в чужие данные. Обычному владельцу сервиса или механику этот раздел недоступен и не виден.
Как открыть
Раздел показывается только тем, чей email добавлен в список операторов на сервере. Для всех остальных его просто нет.
Два способа добраться:
- Главный экран (Дашборд) — в самом верху страницы появляется цветная плашка «Консоль оператора платформы» (подпись: «Все тенанты, оплаты, доступ — отдельный кабинет»). Нажмите на неё — откроется консоль.
- Настройки — откройте «Ещё» → «Настройки», пролистайте до пункта «Платформа (оператор)» (подпись: «Глобальная панель оператора») и нажмите на него.
После нажатия открывается отдельный экран с заголовком «Платформа» и четырьмя вкладками вверху.
Что на экране
Экран разделён на четыре вкладки. Вкладки прокручиваются горизонтально, если не помещаются.
Вкладка «Сводка»
Общая картина по всей платформе: сколько автосервисов зарегистрировано, сколько сотрудников и клиентов во всех них, выручка за последние 30 дней и за всё время, сколько открытых нарядов, сколько просроченных счетов.
Вверху — синяя полоска-напоминание: «Доступ к данным тенанта логируется неизменяемо». Это значит: каждый ваш вход сюда записывается и удалить эту запись нельзя.
Ниже — блок «Требуют внимания»: автосервисы с долгами или проблемами (выделены красной рамкой). Если всё в порядке — зелёная галочка и надпись «Все тенанты в норме».
Затем идёт сетка цветных карточек с числами (тенантов всего, активных, новых за 30 дней, сотрудников, клиентов, нарядов, открытых нарядов, выручки 30д, выручки всего, просрочки).
Вкладка «Тенанты»
Список всех автосервисов. Каждый — карточка с цветной точкой здоровья слева, названием, краткой статистикой (нарядов, выручка 30д, просрочка если есть) и меткой статуса справа.
Нажав на карточку, вы попадаете на страницу автосервиса (drill-down) с полной информацией.
Вкладка «Оплаты»
Сводка по деньгам платформы: MRR (ежемесячная регулярная выручка), ARR (годовая), количество и сумма открытых счетов, распределение подписок по статусам.
Вкладка «Аудит»
Журнал всех действий операторов. Каждая запись: тип действия (например impersonate, suspend), дата и время, email оператора, IP-адрес и причина. Кнопка «Проверить цепочку» вверху проверяет, что записи не подделаны.
Страница автосервиса (drill-down)
Открывается при нажатии на карточку в списке «Тенанты». Заголовок — название автосервиса.
Сверху вниз:
- Цветная точка здоровья + метка статуса + страна и валюта.
- Если есть — регистрационный номер (Reg …) и VAT-номер.
- Контрол заморозки (красная кнопка или красный баннер — зависит от текущего состояния).
- Карточка «Тариф» — текущий план и лимиты (сотрудники / авто / AI-запросы в месяц).
- Карточка «Подписка» — статус, сумма €/мес, последние счета.
- Карточка «AI-сводка состояния» — текст о состоянии автосервиса, генерируется AI по факту.
- Сетка статистик (сотрудников, клиентов, авто, нарядов, выручки).
- Наряды по статусам — набор меток.
- Список команды сотрудников с ролями.
Каждая кнопка и действие
| Элемент | Где | Что делает | Кому доступно |
|---|---|---|---|
| Плашка «Консоль оператора платформы» на дашборде | Главный экран (дашборд) | Открывает консоль платформы | Только оператор платформы |
| Пункт «Платформа (оператор)» в настройках | Экран «Настройки» | Открывает консоль платформы | Только оператор платформы |
| Вкладка «Сводка» | Верх экрана «Платформа» | Показывает общую статистику по всем автосервисам | Оператор платформы |
| Вкладка «Тенанты» | Верх экрана «Платформа» | Показывает список всех автосервисов | Оператор платформы |
| Вкладка «Оплаты» | Верх экрана «Платформа» | Показывает MRR/ARR и счета | Оператор платформы |
| Вкладка «Аудит» | Верх экрана «Платформа» | Показывает журнал доступа | Оператор платформы |
| Тянуть список вниз (потянуть-обновить) | На любой вкладке и на странице автосервиса | Перезагружает данные с сервера | Оператор платформы |
| Карточка автосервиса в списке (нажатие) | Вкладка «Тенанты» | Открывает страницу этого автосервиса с полной информацией | Оператор платформы |
| Строка «Требуют внимания» (нажатие на автосервис) | Вкладка «Сводка», блок «Требуют внимания» | Открывает страницу этого автосервиса | Оператор платформы |
| Кнопка «↻» при ошибке загрузки | Любая вкладка, если данные не загрузились | Повторяет запрос к серверу | Оператор платформы |
| Кнопка «Добавить автосервис» (расширенная кнопка с иконкой и текстом, правый нижний угол) | Экран «Платформа», любая вкладка | Открывает диалог создания нового автосервиса | Оператор платформы |
| Иконка «глаз» в шапке страницы автосервиса | Страница автосервиса, правый верхний угол | Открывает диалог входа в режим просмотра (импорсонация) | Оператор платформы |
| Меню «…» в шапке страницы автосервиса (кнопка с тремя точками) | Страница автосервиса, правый верхний угол | Раскрывает меню с двумя пунктами | Оператор платформы |
| Пункт меню «Архивировать» | Меню «…» на странице автосервиса | Открывает диалог архивирования (требует указать причину); архивированный тенант не виден в обычном списке | Оператор платформы |
| Пункт меню «Восстановить» | Меню «…» на странице автосервиса | Открывает диалог восстановления из архива (требует причину) | Оператор платформы |
| Кнопка «Заморозить» (красная, с иконкой снежинки) | Страница автосервиса, под статусом | Открывает диалог заморозки с предупреждением; после подтверждения сотрудники и клиенты теряют доступ к этому сервису (обратимо) | Оператор платформы |
| Кнопка «Разморозить» (в красном баннере) | Страница автосервиса, если тенант заморожен | Открывает диалог разморозки с запросом причины; восстанавливает доступ | Оператор платформы |
| Выпадающий список тарифа («Тариф») | Карточка «Тариф» на странице автосервиса | Позволяет выбрать другой тарифный план; изменение применяется сразу (записывается в аудит) | Оператор платформы |
| Кнопка «Оплачен» рядом со счётом | Карточка «Подписка», список счетов | Помечает открытый счёт как оплаченный | Оператор платформы |
| Кнопка «Изменить подписку» (с иконкой карандаша) | Карточка «Подписка» | Открывает диалог правки подписки | Оператор платформы |
| Кнопка с иконкой «воспроизведение» (▷) | Карточка «AI-сводка состояния», если сводка ещё не запрошена | Запрашивает AI-анализ состояния автосервиса у сервера | Оператор платформы |
| Кнопка с иконкой «обновить» (↻) | Карточка «AI-сводка состояния», после того как сводка уже получена | Запрашивает новую AI-сводку | Оператор платформы |
| Кнопка «Проверить цепочку» | Вкладка «Аудит», вверху | Проверяет целостность журнала — нет ли подделанных записей; результат появляется прямо на кнопке | Оператор платформы |
| Тянуть вниз (обновить) список аудита | Вкладка «Аудит» | Перезагружает журнал | Оператор платформы |
| Баннер «Просмотр: [Название] · только чтение · ММ:СС» | Красная полоса вверху всего приложения (в режиме просмотра тенанта) | Показывает, что вы сейчас смотрите данные от имени этого тенанта; обратного отсчёт до автовыхода | Только пока активен режим просмотра |
| Кнопка «Выйти» в баннере | Красная полоса вверху (режим просмотра) | Немедленно выходит из режима просмотра тенанта и возвращает вас к своим данным | Только пока активен режим просмотра |
Диалоги и подэкраны
Диалог «Добавить автосервис»
Открывается кнопкой «Добавить автосервис» (правый нижний угол экрана «Платформа»).
Поля:
| Поле | Что вводить | Обязательно |
|---|---|---|
| Название | Название автосервиса (например, «АвтоМастер Таллин») | Да — без него кнопка не сработает |
| Имя владельца | Полное имя владельца сервиса | Нет (если пусто, подставляется название сервиса) |
| Email владельца | Электронная почта будущего владельца | Да — без него кнопка не сработает |
Кнопки:
- «Отмена» — закрыть диалог без создания.
- «Добавить автосервис» — создать сервис. Если «Название» или «Email владельца» пусты, кнопка не реагирует. После успеха — всплывает сообщение «Тенант создан» и список обновляется.
Диалог «Войти как тенант (read-only)»
Открывается кнопкой-глазом в шапке страницы автосервиса.
Поле:
| Поле | Что вводить | Обязательно |
|---|---|---|
| Причина доступа (обязательно) | Коротко: зачем вы заходите (например, «Помощь клиенту с нарядом»). Максимум 200 символов. | Да — без причины кнопка не сработает |
Кнопки:
- «Отмена» — закрыть без входа.
- «Войти как тенант (read-only)» — запустить режим просмотра. Если всё прошло хорошо, всплывёт сообщение «Режим просмотра тенанта включён» и вы попадёте на главный экран, но уже с данными этого автосервиса. Вверху появится красная полоска с таймером. Вы видите данные, но ничего изменить нельзя — это режим только для чтения. При неудаче появится сообщение «Не удалось войти как тенант».
Каждый вход записывается в журнал аудита с вашим email, IP-адресом, временем и причиной.
Диалог «Заморозить» / «Разморозить»
Открывается кнопками «Заморозить» или «Разморозить» на странице автосервиса.
При заморозке диалог дополнительно показывает предупреждение: «Заморозить тенанта? Сотрудники и клиенты потеряют доступ (реверсивно).»
Поле:
| Поле | Что вводить | Обязательно |
|---|---|---|
| Причина доступа (обязательно) | Причина действия. Максимум 200 символов. | Да |
Кнопки:
- «Отмена» — закрыть без действия.
- «Заморозить» (красная, при заморозке) / «Разморозить» (обычная, при восстановлении) — выполнить действие.
После успешной заморозки на странице автосервиса появляется красный баннер «Тенант заморожен — доступ заблокирован» с указанием причины.
Диалог «Архивировать» / «Восстановить»
Открывается через меню «…» → «Архивировать» или «Восстановить».
Поле:
| Поле | Что вводить | Обязательно |
|---|---|---|
| Причина доступа (обязательно) | Причина архивирования или восстановления. Максимум 200 символов. | Да |
Кнопки:
- «Отмена» — закрыть без действия.
- «Архивировать» (красная) / «Восстановить» (обычная) — выполнить действие. После успешного действия появляется уведомление «Тенант архивирован».
Диалог «Изменить подписку»
Открывается кнопкой «Изменить подписку» (карандаш) в карточке «Подписка».
Поля:
| Поле | Что вводить |
|---|---|
| Статус (выпадающий список) | Выберите статус подписки из списка (например: trialing, active, cancelled и др.) |
| €/мес (текстовое поле) | Сумма ежемесячной оплаты в евро (только цифры) |
Кнопки:
- «Отмена» — закрыть без сохранения.
- «Сохранить» — применить изменения. После успеха карточка подписки обновляется.
Баннер режима просмотра тенанта (красная полоса)
Появляется поверх всего приложения, как только вы успешно вошли в режим просмотра.
Содержит: «Просмотр: [Название сервиса] · только чтение · ММ:СС» — таймер считает, сколько осталось до автоматического выхода (сессия живёт 30 минут).
Кнопка «Выйти» — немедленный выход из режима просмотра. Данные тенанта пропадают с экрана, вы снова видите свои данные. При выходе параметр ?imp= убирается из адресной строки браузера — если обновить страницу после нажатия «Выйти», режим не вернётся. Если же обновить страницу не выходя (пока ?imp= ещё в URL), баннер появится снова до истечения TTL.
Что если…
Раздел «Платформа» не виден нигде
Значит, ваш email не добавлен в список операторов на сервере (env-переменная PLATFORM_ADMIN_EMAILS). Это делает технический специалист при настройке сервера. Обычным владельцам автосервиса этот раздел намеренно скрыт — так и должно быть.
Данные не загружаются — виден замочек и кнопка «↻»
Сервер вернул ошибку доступа (403). Нажмите «↻» для повтора. Если не помогает — проверьте соединение или обратитесь к системному администратору.
AI-сводка показывает «AI не настроен» (курсивом)
Ключ AI-сервиса (ANTHROPIC_API_KEY) не задан в настройках сервера. Сводка появится после его добавления.
«Проверить цепочку» показывает «Цепочка нарушена!» красным
Это серьёзный сигнал: кто-то мог изменить записи аудита напрямую в базе данных. Немедленно свяжитесь с технической поддержкой. Если всё в порядке — кнопка покажет «Цепочка цела» зелёным и число проверенных записей.
Кнопка «Добавить автосервис» / «Заморозить» / «Войти как тенант» не реагирует
Скорее всего, поле «Причина доступа (обязательно)» или обязательные поля формы остались пустыми. Заполните их — кнопка заработает.
Режим просмотра завершился сам по себе
Сессия работает 30 минут (таймер в красном баннере). Когда таймер доходит до 00:00, выход происходит автоматически. Зайдите снова через кнопку-глаз и укажите причину.
Вопрос-ответ
Я зашёл в раздел «Платформа» — меня видят все пользователи того автосервиса?
Нет. Они не получают никакого уведомления. Но каждый ваш вход фиксируется в журнале аудита: email, время, IP и причина. Этот журнал невозможно изменить или удалить.
В: Что значит «заморозить» автосервис? Данные пропадут? О: Данные не пропадут — они остаются в базе. «Заморозить» означает: все сотрудники и клиенты этого сервиса теряют возможность входа (видят сообщение о блокировке). Разморозить можно в любой момент — нажать «Разморозить», указать причину, и доступ восстанавливается.
В: Зачем нужна причина при каждом действии? О: Все действия — заморозка, архивирование, вход как тенант — записываются в неизменяемый журнал аудита вместе с причиной. Это защита: если кто-то потом спросит «зачем это делалось» — ответ будет зафиксирован.
В: Чем «Архивировать» отличается от «Заморозить»? О: Заморозка — временная блокировка доступа (сотрудники видят «заблокировано»). Архивирование — автосервис убирается из обычного списка тенантов (как «скрыть»), но данные остаются. Оба действия обратимы.
В: Могу ли я что-то изменить в данных автосервиса в режиме просмотра? О: Нет. Режим просмотра — строго только для чтения. Все кнопки, которые меняли бы данные, заблокированы. Красная полоска «только чтение» напоминает об этом постоянно.
В: Как изменить тариф у конкретного автосервиса? О: Зайдите в «Тенанты» → нажмите на нужный сервис → в карточке «Тариф» откройте выпадающий список и выберите новый план. Изменение применяется сразу и записывается в журнал.