main.sc - стартовый, с него начинается загрузка сценария
callback.sc - "ловит" кнопки, на которые нажал пользователь во время работы с ботом, в зависимости от этого переключает сценарии (стейт для обработки события telegramCallbackQuery)
checklist.sc - стейты для обработки выполнения чек-листа, здесь же формируютя сообщения в групповой чат о процессе выполнения чек-листа и исполнителю чек-листа о шагах, которые необходимо выполнить
knowledge_base.sc - файл с выводом инлайнкнопок и ссылками на различные инструкции
reminder.sc - файл с обработкой тегов "запустить напоминания/удалить напоминания" (содержит стейты для запуска и обработки напоминаний)
telegram_functions.is - файлы с функциями Telegram API на JS.
utils.js - файл с функцией подготовки чек-листа к запуску. Объявляет необходимые переменные и присваивает им значения.
dicts/checklist.yaml - словарь, выводит задания по чек-листу в зависимости от дня недели, отрабатывает в скриптах файла checklist.sс
Файлы автотестов:
test_checklist_report.xml - проверяет работу модуля Формирования сообщений
test_error_counter.xml - проверяет работу счетчика ошибок и функции отправки сообщений
est_reminder.xml - проверяет работу модуля Напоминания
test_start_checklist.xml - проверяет работу модуля Работа с Чек-листом
Переменные:
main.sc
$session.stepNumber - переменная шага выполнения чек листа, номер обозначает пункт, находящийся в работе
$session.ErrorCounter - переменная ошибок, после 3-й ошибки куратору в общую группу выводится сообщение, что у сотрудника проблема на (stepNumber) шаге выполнения чек листа
callback.sc
$request.rawRequest.callback_query.data - Объект запроса в исходном виде для последующей обработки в сценарии callback_query.data - результат нажатия на кнопки "База знаний" - переход в стейт /KnowledgeBase, "Старт" - выполняется скрипт и запускается Чек-лист, "Назад в меню" - переход в стейт /MainMenu
$client.amountStartTimeInMilliseconds = $jsapi.timeForZone("Europe/Moscow") - время запуска чек-листа, время московское.
var dayInAccs = $nlp.inflect(checklist[$session.checklistType].dayName, "accs"); - применен встроенный сервис $nlp.inflect - склоняет слово в требуемый падеж
$client.name - имя сотрудника
$client.username - ник сотрудника в ТМ
message - сформированное сообщение
$temp.response - переменная, существующая только в рамках данного стейта (ReceiptCallbackQuery), ответ пользователю
reminder.sc:
$client.eventId - id напоминания
$pushgate.cancelEvent($client.eventId) - Метод отменяет событие, ранее созданное при помощи метода $pushgate.createEvent.
$reactions.answer("Все напоминания удалены") - Метод выводит простой текстовый ответ.
$reactions.setClientTimezone("Europe/Moscow") - Метод позволяет установить часовой пояс текущего клиента.
utils.js
session.clientChatId - id сотрудника
client.id - id чата с сотрудником
client.report - массив с отчетом (фотографии выполненных шагов Чек-листа)
session.early_id - id сообщения, которое нужно будет удалить при срабаытывании напомнинаия
session.early_text - текст сообщения, который нужно будет удалить при срабаытывании напомнинаия
session.checklistType - текущий день недели, используется для работы со словарем checklist.yaml