CarsEXP Академия Назад

Календарь и планирование записей

Раздел «Календарь записей» — это ежедневник вашего автосервиса: кто едет, во сколько и на какой пост. Здесь записывают клиентов по звонку, видят загруженность дня, переносят записи пальцем и в один тап отправляют машину в наряд. Рядом живёт раздел «Напоминания» — список клиентов, которым нужно позвонить сегодня или завтра перед визитом.

Как открыть

  • Календарь записей — боковая навигация (иконка внизу) → «Ещё» → «Календарь записей» (маршрут /calendar).
  • Напоминания (обзвон) — «Ещё» → «Напоминания» (маршрут /reminders). Пункт виден только при включённом модуле напоминаний.
  • Из уведомления «Клиент просит перенос» и других событий приложение само открывает нужный день и подсвечивает запись.

Что на экране

Экран «Календарь записей»

Сверху вниз:

  1. Шапка (AppBar) — заголовок «Календарь на сегодня», справа иконка AI-приёмщика.
  2. Навигация по дням — стрелки ‹ › с датой по центру и кнопкой «Сегодня».
  3. Полоса дней — горизонтальная лента чисел ±1 год; кольцо загруженности вокруг каждого числа.
  4. Строка фильтров — чипы «Площадка», «Пост», «Статус» и кнопка сброса.
  5. Таймлайн (сетка часов) — прокручиваемый список строк по часам (по умолчанию 8–19, расширяется под ранние/поздние записи). Карточки записей лежат поверх сетки как прямоугольники высотой «длительность».
  6. Кнопка «+ Запись» (FAB, большая кнопка внизу справа) — при перетаскивании превращается в корзину «В корзину».

Экран «Напоминания (обзвон)»

  1. Шапка — заголовок «Напоминания (обзвон)».
  2. Переключатель «Сегодня / Завтра» — прямо под заголовком.
  3. Сводка — две статусные строки с иконками: «К обзвону: N» и «Отправлено: M» над списком.
  4. Список карточек — клиент, авто/услуга, кнопка звонка, галочка «отметил».

Каждая кнопка и действие

Навигация по дням (полоса и шапка)

ЭлементГдеЧто делаетКому доступно
Стрелка ‹ «Предыдущий день»Шапка навигации, слева от датыПереходит на один день назадВсе
Стрелка › «Следующий день»Шапка навигации, справа от датыПереходит на один день вперёдВсе
Дата по центру (значок календарика + «Сегодня · 13 июл» или «Пт · 12 июл»)Между стрелкамиТап открывает системный мини-календарь — выбрать любую дату за ±1 годВсе
Кнопка «Сегодня»Справа от даты (появляется, если вы не на сегодня)Возвращает к сегодняшнему днюВсе
Ячейка числа в полосе днейГоризонтальная лента под навигациейТап — переход на этот день; выбранный день выделен цветом. Дуга-кольцо вокруг числа показывает долю загруженности: растёт пропорционально числу записей (полный круг = 8 записей). Цвет дуги: зелёный — до 2 записей, жёлтый — 3–5, красный — 6 и большеВсе
Свайп влево по таймлайнуОбласть расписанияПереход на следующий деньВсе
Свайп вправо по таймлайнуОбласть расписанияПереход на предыдущий деньВсе
Потянуть список вниз (pull-to-refresh)Область расписанияПерезагружает записи дняВсе

Фильтры дня

ЭлементГдеЧто делаетКому доступно
Чип «Площадка» (иконка метки места)Строка фильтров — появляется, только если площадок больше однойОткрывает выпадающий список площадок; выбор сужает список записейВсе
Чип «Пост» (иконка гаража)Строка фильтров — появляется, если у площадки есть постыОткрывает список постов (сужается под выбранную площадку)Все
Чип «Статус» (иконка флажка)Строка фильтровОткрывает список: «Все» / «Запланировано» (ещё не приняты) / «Приняты» (чек-ин сделан)Все
Кнопка «Сбросить» (значок X + текст «Сбросить»)Строка фильтров — появляется, когда хоть один фильтр активенСбрасывает все три фильтра разомВсе

Таймлайн — ячейки часов

ЭлементГдеЧто делаетКому доступно
Тап по пустой ячейке часа (первый тап)Фон таймлайна, любая строка часаОтмечает час начала (подсвечивается синей рамкой слева); появляется подсказка «Коснитесь часа окончания, чтобы создать запись на этот диапазон»Только при праве scheduling:create
Тап по другой ячейке часа (второй тап)Фон таймлайнаОткрывает форму «Новая запись» с заранее заполненными началом и концом по выбранному диапазонуТолько при праве scheduling:create
Долгое нажатие на ячейку часаФон таймлайнаОткрывает форму «Новая запись» с датой и часом, на котором нажали (длительность 1 час по умолчанию)Только при праве scheduling:create
Перетаскивание карточки записи на ячейку часаФон таймлайна (зона дроп-цели подсвечивается с меткой часа)Переносит запись на новый час; длительность сохраняется. Работает во всю ширину поверх других карточекТолько при праве scheduling:create

Карточка записи в таймлайне

ЭлементГдеЧто делаетКому доступно
Тап по карточке записиТаймлайнОткрывает нижнее меню действий (подробнее — в разделе «Диалоги»)Все; у завершённых/отменённых/неявок тап заблокирован
Кнопка «Записать приезд» (зелёная пилюля внутри карточки)Внутри карточки — появляется только для записей сегодняшнего дня в статусах «ожидает», «подтверждена», «запрошена» и только если карточка достаточно высокая (≥ 56 пикселей, ~1 час)Открывает форму создания наряда с уже заполненным клиентом, авто и id записи; после сохранения наряда сразу открывает егоТолько при праве scheduling:create
Зажать карточку и тянуть (long-press drag)Карточка записиНачинает перетаскивание: FAB внизу превращается в корзину «В корзину», сама карточка блекнет. Можно перенести на другой час или бросить в корзинуТолько при праве scheduling:create

FAB и корзина

ЭлементГдеЧто делаетКому доступно
«+ Запись» (FAB с иконкой плюса и подписью «Запись»)Нижний правый угол экранаОткрывает форму «Новая запись» без предустановленного времениТолько при праве scheduling:create
«В корзину» (FAB-корзина, красная, появляется при перетаскивании)Нижний правый угол — только во время drag карточкиПринять брошенную карточку: запускает удаление с таймером 5 секунд и кнопками «Отмена» / «Удалить»Только при праве scheduling:create

Кнопка AI-приёмщика

ЭлементГдеЧто делаетКому доступно
Иконка AI-приёмщика (наушники с человечком)Правый угол AppBarОткрывает экран «AI-приёмщик»Только при праве scheduling:create

Форма «Новая запись» (bottom-sheet)

ЭлементГдеЧто делаетКому доступно
Поле «Площадка» (иконка магазина, picker-поле)Форма, вверху — только если площадок больше однойТап открывает список площадок; выбор обязателен, без него форма не отправится (показывается «Обязательное поле»)Все
Выпадающий список «Пост» (иконка гаража)Форма — только если у площадки больше одного постаВыбор конкретного поста для записи; «Без поста» — значение по умолчаниюВсе
Поля «Клиент» и «Авто» (сдвоенный picker)ФормаТап по клиенту открывает список клиентов; выбор клиента подтягивает его первое авто. Оба поля необязательныВсе
Предупреждение «Клиент ранее не приезжал — рекомендуем подтвердить запись» + счётчик неявокФорма — появляется под полем клиента, если у него есть пропущенные визитыИнформационная плашка, действий не требует; не блокирует созданиеВсе
Поле «Услуга · Необязательно» (иконка гаечного ключа)ФормаСвободный текст: что нужно сделать. Не обязательноВсе
Плитка «Выбрать дату и время» / дата начала (иконка часов)ФормаТап открывает сначала выбор даты, затем выбор времени начала; заполняется из предустановленного значения, если запись создаётся с таймлайнаВсе
Плитка «Окончание» (иконка таймлайна, появляется после выбора начала)Форма под полем началаТап открывает выбор даты и времени окончания; по умолчанию начало + 1 час; нельзя поставить конец раньше началаВсе
Кнопка «Подобрать время» (иконка звёздочки)Форма под полем времениЗапрашивает у сервера 3 ближайших свободных слота с учётом загрузки постов; пока загружает — показывает крутилку и заблокированаВсе
Чипы подобранных слотов (до 3 штук)Форма — появляются после нажатия «Подобрать время»Тап по чипу подставляет это время в поле начала; выбранный чип выделяется. Рядом с временем может быть короткая причина: «точно свободно», «ближайшее время», «удобное время дня», «оптимально по загрузке»Все
Кнопка «Создать запись» (основная, заполненная)Внизу формыОтправляет запись; пока сохраняет — показывает крутилку. Площадка не выбрана → не отправит, покажет ошибку под полемВсе с правом scheduling:create

Экран «AI-приёмщик»

ЭлементГдеЧто делаетКому доступно
Чип-пример (3 варианта на старте: «Когда примете на замену масла завтра?», «Запишите на диагностику, Иван, +372 5xxxxxxx», «Какое ближайшее свободное время?»)Экран, когда диалог пустТап подставляет фразу в поле вводаВсе
Поле ввода «Реплика клиента…»Нижняя панельМногострочное поле (1–3 строки); Enter/«Отправить» на клавиатуре отправляет сообщениеВсе
Кнопка «Отправить» (иконка самолётика, заполненная)Справа от поляОтправляет текст AI-приёмщику; заблокирована, пока идёт ответВсе
Индикатор загрузки (тонкая линия под диалогом)Нижняя панельПоявляется, пока AI думаетАвтоматически
Чипы слотов под ответом AIПузырь ответаНеактивные информационные метки времени — показывают предложенное времяВсе

Экран «Напоминания (обзвон)»

ЭлементГдеЧто делаетКому доступно
Переключатель «Сегодня / Завтра» (SegmentedButton)Под заголовкомПереключает список между записями на сегодня и на завтраВсе
Потянуть список вниз (pull-to-refresh)Список карточекПерезагружает списокВсе
Иконка трубки (зелёная, заполненная, в строке карточки)Справа в карточке — только если у клиента есть номер телефонаТап сразу набирает номер телефона (открывает приложение «Телефон»)Все
Иконка галочки (круглая, в строке карточки)Справа в карточке — только если запись ещё не отмеченаТап отмечает «Я позвонил»: имя клиента зачёркивается, время в пилюле тускнеет, появляется маленькая галочкаВсе
Тап по карточке клиентаВся карточкаОткрывает нижнее меню действий (подробнее — ниже)Все

Диалоги и подэкраны

Нижнее меню действий по записи (из тапа на карточке в таймлайне)

Открывается тапом по карточке в таймлайне — только для не-терминальных статусов (не завершена, не отменена, не «неявка»).

Шапка меню: имя клиента + авто (если заполнены).

ЭлементЧто делает
«Открыть клиента» (иконка человека) — появляется, если клиент привязанЗакрывает меню, открывает карточку клиента (/client/<id>)
«Открыть авто» (иконка машины) — появляется, если авто привязаноЗакрывает меню, открывает карточку авто (/vehicle/<id>)
«Изменить дату/время» (иконка карандаша + календарика)Закрывает меню, открывает последовательно три системных диалога: выбор даты → выбор времени начала → выбор времени окончания. Если конец ≤ начало, сервер автоматически ставит +1 час
«Изменить данные» (иконка карандаша)Закрывает меню, открывает форму записи в режиме редактирования — правка клиента, машины и услуги (без смены времени)
«Снять подтверждение» (жёлтая иконка минуса в круге) — только если статус «подтверждена»Возвращает запись в статус «запрошена»
«Подтвердить запись» (зелёная иконка галочки в круге) — только если статус НЕ «подтверждена»Переводит запись в статус «подтверждена»
«Чек-ин» (иконка машины, синяя) — недоступна, если статус уже «принята»Создаёт наряд из записи и сразу открывает его (/order/<id>)
«Клиент не приехал» (красная иконка человека с крестом)Переводит запись в статус «неявка»
«Отменить» (иконка занятого события)Переводит запись в статус «отменена»

Диалог удаления через корзину (drag-to-delete)

Появляется, когда карточка записи брошена на FAB-корзину во время перетаскивания.

Это стандартный виджет «отложенного удаления» (CxPendingDelete): снек-бар показывается 5 секунд с именем клиента и двумя кнопками:

  • «Отмена» — отменяет удаление, запись остаётся.
  • «Удалить» — немедленно отменяет запись (не ждёт 5 секунд).

Нижнее меню действий по строке в «Напоминаниях»

Открывается тапом по карточке в списке напоминаний.

Шапка: имя клиента + время · авто · услуга.

ЭлементЧто делает
«Позвонить» (зелёная трубка) + номер телефона под кнопкой — только если телефон естьЗакрывает меню, открывает приложение «Телефон» с этим номером
«Скопировать номер» (иконка копирования) — только если телефон естьЗакрывает меню, копирует номер в буфер обмена; появляется снек «Телефон скопирован»
«Открыть клиента» (иконка человека) — только если клиент привязанЗакрывает меню, переходит на карточку клиента
«Открыть авто» (иконка машины) — только если авто привязаноЗакрывает меню, переходит на карточку авто
«Отметить отправленным» (синяя иконка письма с галочкой) — только если ещё не отмеченоЗакрывает меню, ставит отметку; имя клиента зачёркивается в списке; снек «Напоминание отмечено отправленным»

Экран «AI-приёмщик» — отдельный экран

Открывается нажатием иконки в AppBar календаря. Полноценный экран с историей диалога.

  • Пустой старт: иконка по центру + текст «Вставьте, что сказал клиент — подберу услугу, время и помогу записать.» + три чипа-примера фраз.
  • Ответ AI: пузырь с текстом ответа + под ним чипы предложенных слотов (если AI нашёл время).
  • Ошибка сети или AI недоступен: пузырь с «Не удалось обработать. Попробуйте ещё раз.»

Что если…

День пустой — нет ни одной записи

показывается текст «На этот день записей нет». Нажмите «+ Запись», чтобы добавить первую.

Фильтр скрыл все записи, хотя записи на день есть

показывается «Нет записей по фильтру». Нажмите кнопку «Сбросить» рядом с фильтрами.

Пришло уведомление «Клиент просит перенос», нажали на него — запись не нашлась

приложение открывает нужный день, но запись уже перенесена кем-то другим. Снизу появляется сообщение «Запись не найдена (возможно, перенесена)». Откройте другой день или поищите по клиенту.

Пытаетесь сделать чек-ин, но кнопка серая («Чек-ин»)

запись уже принята (статус «принята»). Чек-ин с неё уже сделан — ищите созданный наряд на доске.

Список напоминаний пуст (иконка телефонной трубки + «Записей к напоминанию нет»)

на выбранный день (сегодня или завтра) нет записей, требующих предварительного звонка. Можно переключиться на другой день кнопкой «Сегодня / Завтра».

«Напоминания» нет в меню

этот раздел доступен только когда включён модуль напоминаний. Обратитесь к владельцу — модуль включается в настройках модулей.

AI-приёмщик отвечает «скоро» или «не удалось»

AI-ключ для сервиса ещё не настроен. Это не ошибка вашего телефона. Обратитесь к владельцу — он вводит ключ в настройках.

Вопрос-ответ

Как быстро перенести запись, не открывая меню?

Зажмите карточку записи пальцем (подержите секунду) — она начнёт «плыть». Тащите на нужный час и отпустите. Длительность сохранится, только час изменится.

В: Клиент приехал, как быстро открыть наряд?

О: Нажмите на карточку записи → «Чек-ин». Наряд создастся сам и сразу откроется. Или нажмите зелёную пилюлю «Записать приезд» прямо внутри карточки (если она достаточно высокая).

В: Ошибочно нажал «Подтвердить запись», как откатить?

О: Снова откройте меню записи. Теперь вместо «Подтвердить» будет «Снять подтверждение» — нажмите её.

В: Кольцо вокруг числа в полосе дней стало красным — это значит, что свободных мест нет?

О: Не обязательно. Красное кольцо значит, что записей 6 и больше (эвристика «занятый день»). Реальную загруженность постов смотрите на самом таймлайне — там видно, в какие часы ещё есть место.

В: Хочу видеть только записи на один пост, не все подряд — как?

О: В строке фильтров под полосой дней нажмите чип «Пост» и выберите нужный. Таймлайн сузится до записей этого поста. Чтобы снова видеть всё — нажмите «Сбросить».

В: Что значат цвета карточек на таймлайне?

О: Жёлтые — ещё не подтверждены (запрошена или запланирована). Зелёные — клиент подтвердил или уже приехал (принята). Красные — отменена или клиент не приехал. Синие — завершена.

Демо