Функции:
- Отправка пользователю pdf файла с планограммой по запросу.
- Отправка пользователю данных ДМП при поиске по адресу или номеру торговой точки.
- Аутентификация в боте по паролю. Хэширование пароля.
- Несколько уровней доступа к функциям бота (мерчендайзер/супервайзер/админ).
- Управление мерчендайзерами супервайзером. У каждого супервайзера свой список его мерчендайзеров.
- Управление всеми пользователями админом.
- Управление файлами с планограммами через бота(в разработке).
- Отправка пользователю текущей погоды по его геопозиции.
Для работы бота необходима база данных, в которой есть 2 таблицы - таблица с данными пользователей и таблица с данными магазинов.
Отправка пользователю pdf файла с планограммой по запросу.
Пользователь запрашивает определённую планограмму, бот отправляет файл. В базе порядка 100 различных планограмм, выбор зависит от номера кластера (0 или 2), названия торговой сети (если ТС - Магнит, то нужно ещё выбрать его формат), формата полочного пространства. Запрос к базе формируется так: пользователь поочередно нажимает на инлайн-кнопки под вопросом, у каждой кнопки свой callback, который записывается в FSM. В ответ из бд получаем путь к нужному файлу. Если файл есть - отправляем, если нет - выдаем ошибку.
Отправка пользователю данных ДМП при поиске по адресу или номеру торговой точки.
ДМП - информация о дополнительном рекламном оборудовании. Информация хранится в Google Sheets. Для каждой сети - свой sheet. Для взаимодействия с api гугла, необходимо получить json файл. Два варианта поиска - по адресу или по номеру магазина. В силу нестандартизированности записи адресов в гуглшите и для упрощения поиска по адресу достаточно ввести название города или улицы.
Аутентификация в боте по паролю. Хэширование пароля.
Для аутентификации в боте используется только пароль. Хэшированный пароль хранится в таблице с данными пользователей. Для дальнейшей авторизации в случае успешной аутентификации - записывается tg_id пользователя в ту же таблицу.
Несколько уровней доступа к функциям бота (мерчендайзер/супервайзер/админ).
Три уровня доступа: Мерчендайзер - планограммы, дмп, погода. Супервайзер - планограммы, дмп, погода, управление своими мерчендайзерами. Админ - планограммы, дмп, погода, управление всеми пользователями.
Управление мерчендайзерами супервайзером. У каждого супервайзера свой список его мерчендайзеров.
Супервайзер может управлять своими мерчендайзерами: добавить нового, удалить или отредактировать существующего, посмотреть списком всех. В редактирование доступны изменение ФИО и пароля. Редактировать и удалять можно только своих супервайзеров.
Управление всеми пользователями админом (в разработке).
То же самое, как и у супервайзера, только без ограничений. В редактирование добавлена возможность изменять уровень доступа и привязанного супервайзера.
Управление файлами с планограммами через бота(в разработке).
pass
Отправка пользователю текущей погоды по его геопозиции.
Запрашиваем геолоку у пользователя, получаем координаты, через api openweathermap получаем json, парсим и возвращаем пользователю
/config.py - Конфиг файл, где хранятся BOT_TOKEN, WEATHER_API_TOKEN, GOOGLE_SHEET_ID
/bot_log.log - Логи работы бота
/dmp/google_auth.json - JSON для работы с API GOOGLE
/planogram/files/ - папка с планограммами
/files.db - база данных