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 и больше (эвристика «занятый день»). Реальную загруженность постов смотрите на самом таймлайне — там видно, в какие часы ещё есть место.

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

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

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

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

Демо