ТЗ бот телеграм для сбора данных и интеграция с внешним сервисом, куда
Интеграция с телеграм:
Сводится к тому, что бот, после команды /start, предлагает пользователю несколько заранее установленных вариантов ответов
Пример
Пользователь: /start
Бот: Добрый день! Назовите ваше имя: “Имя 1”, “Имя 2”, “Имя 3”,…
Пользователь: (Выбирает “Имя 1”)
Бот: Добрый день, Имя 1! Выберите (еще что-то, что будет иметь связь в БД с сущностью Человек, у которого есть поле со значением “Имя 1”. )
…Бот задает еще несколько вопросов на по…
Бот: Введите конечное значение
Пользователь: 10
Бот: Вы уверены?
Пользователь: Да (из строгого выбора в Да/Нет)
Бот: спасибо, на сегодня всё
(Бот должен иметь еще несколько команд помимо /start, эти команды будут сводиться к откатам ответов на вопросы, как правило)
Интеграция с google sheets
Сводится к тому, что вписанный ранее юзером - 10 - встает на определенную ячейку в таблице. Для определения, на какую ячейку нужно поставить 10, необходима стадия с вопросами от бота в телеграм
Сам сервис:
Поток 1
Сам сервис помимо интеграции с внешними сервисами, должен иметь свою БД. Взаимодействие с внешними сервисами основывается на БД нашего.
БД в нашем сервисе представляет из себя связь сущностей, реляционная БД (примерная схема есть). Все сущности связаны между собой. Должна быть возможность фильтровать другие сущности по данной сущности.
Пример
Сущность 1 связана с Сущность 2, Сущность 3, Сущность 4 через pK. Связи рода один-ко-многим и многие-ко-многим.
Таким образом, должна существовать возможность задать экземпляры Сущности 2, Сущности 3, Сущности 4 (В любых комбинациях - только 2 и 3, только 4 и 3, все вместе, только что-то одно) и получить пересеченное отфильтрованные экземпляры Сущности 1. Подобная фильтрая будет лежать в основе вопросов и порядка вопросов в телеграмме боте
Поток 2
Обратный поток данных из Google Sheets в телеграм представляет из себя прочтение ячеек из колонки и на основании считанной информации, менять (или не менять, если изменений не было) отношения между экземплярами сущностей (то есть вчера Экемпляр 1 Сущности1 имел связь с Экземплярами 4 5 6 Сущности2, а сегодня в ячейках изменились данные и теперь Экземпляр 1 Сущности 1 имеет связь с Экземплярами 8 1 Сущности2).
По факту это означает, что варианты ответов на вопросы телеграм бота будут меняться в зависимости от выбранных ранее вариантов
Такая считка данных должна происходить переодически, раз в сутки.