Кнопка дальше и страницы для магазина в Телеграме
Я пишу бота для телеграм и возникла необходимость сделать в боте что-то наподобие страниц и кнопки дальше, пример: для просмотра товаров в категории пользователь нажимает на кнопку Товары ( при нажатии на эту кнопку пользователь сможет увидеть первые 10 названий товаров ) ранее выбранной категории, бот должен отобразить пользователю 10 названий товаров на кнопках, если товаров в категории больше 10, тогда на клавиатуру добавляется кнопка дальше ( с callback_data='КЛЮЧ КАТЕГОРИИ:2' ( 2 - это номер следующей страницы )), чтобы пользователь мог посмотреть другие доступные товары в этой же категории, после нажатия на кнопку дальше должна вызваться эта же функция, которая ранее сгенерировала первые доступные 10 товаров. Если товаров в категории осталось больше 10 начиная с 11-го товара ( так как первые 10 товаров - это первая страница товаров в категории выбранной пользователем ) должна сгенерироваться клавиатура ( с товарами от 11 до 21), также с кнопкой дальше, иначе сгенерироваться клавиатура с оставшимися товарами.
Я написал на листе бумаги свои действия по написанию этого кода так:
Если пользователь перешёл в магазин, выбрал категорию (первая страница):
- Получаем товары в категории
- Получаем общее количество товаров в категории
len(тут словарь с товарами)
--- Если общее количество товаров в категории меньше или равно 10:
---- 1. Проходимся циклом for по общему количеству товаров (тут список) и генерируем клавиатуру без кнопки дальше.
--- Если общее количество товаров в категории больше или равно 11:
---- 1. Проходимся циклом for по общему количеству товаров до 10 и генерируем клавиатуру с кнопкой дальше.
Если пользователь был на первой странице и нажал на кнопку дальше (вторая страница):
---- 1. Получаем товаров в категории
---- 2. Получаем общее количество товаров в категории len(тут словарь с товарами)
---- 3. Получаем товары с 11 до последнего.
--- Если товаров с 11 до последнего товара меньше или равно 21:
---- 1. Генерируем клавиатуру с кнопками, но без кнопки дальше ( следующей страницы для просмотра товаров )
--- Если товаров с 11 до последнего товара больше или равно 22:
---- 1. Генерируем клавиатуру с кнопками и с кнопкой дальше ( следующей страницы для просмотра товаров )
P.s - за это всё должна отвечать одна единственная функция. В качестве ответа ожидаю получить способ как это можно сделать более проще.