Передача функции с одного обработчика inline в другой python
Столкнулся с проблемой. Пишу бота в телеграмм. Суть заключается в том, что я создаю корзину.
Использую sqlite3. Там формируется строка (уникальный код, id пользователя, название товара, и добавки, три штуки (реализуются добавки как bool)).
Я делаю последовательно меню (формируются кнопки с названиями товаров), после нажатия на одну из них выходит описание товара, и кнопки "добавить в корзину" и "назад в меню".
После того, как пользователь нажимает "добавить в корзину" - создается запись с уникальным номером, id, названием товара. Дальше ему предлагается выбрать ингредиенты на выбор. Он выбирает.
Вот тут и начинаются проблемы. В первом обработчике (добавить в корзину) сгенерировался рандомный номер.
Как его передать во второй обработчик и далее?
Ладно, я могу сделать запрос в бд и вытащить его номер по id, но вдруг у него это второй товар? Следовательно - второй уникальный номер. Вариант с названием товара и id тоже не особо помогает: дело в том, что он может добавить один и тот же товар, но с разными ингредиентами.
Код приложу ниже, если кто подскажет, буду благодарен. Вот примеры кода. Простите за воду в коде. Глаз замылен уже. Ставил эксперименты.
async def button10_handler(query: types.CallbackQuery):
coffee_id = 1
user_id = query.from_user.id
markup = ReplyKeyboardMarkup(keyboard=keyboard, resize_keyboard=True, one_time_keyboard=True)
result = await choose_menu(1)
await get_photo(coffee_id, user_id)
#result = await choose_menu(coffee_id)
#await bot.send_message(chat_id=user_id, text=result, reply_markup=inline_keyboard)
#await bot.send_message(chat_id=user_id, text=message.text, reply_markup=markup)
markup1 = InlineKeyboardButton('Добавить в корзину', callback_data=f'coffee:{coffee_id}')
inline_keyboard1 = InlineKeyboardMarkup().row(markup1)
await bot.send_message(chat_id=user_id, text=result, reply_markup = inline_keyboard1)
async def button10_callback_query(query: CallbackQuery):
user_id = int(query.from_user.id)
data = query.data.split(':')
coffee_id = int(data[1])
name_coffee = conn.execute('SELECT name FROM menu WHERE id=?', (coffee_id,))
row_coffee = name_coffee.fetchone()
conn.execute('INSERT INTO coffee(user_id,coffee) VALUES(?,?)', (user_id, row_coffee[0],))
conn.commit()
cursor.execute('SELECT coffee FROM coffee WHERE user_id=?', (user_id,))
result = cursor.fetchone()
res_res = result[0]
res_res = res_res.replace("(", "").replace(")", "").replace(",", "").replace("'", "")
markup1 = InlineKeyboardMarkup().add(InlineKeyboardButton('Да', callback_data=f'ing_yes:{user_id}:{coffee_id}'))\
.add(InlineKeyboardButton('Нет', callback_data=f'ing_no:{user_id}:{coffee_id}'))
await bot.send_message(chat_id=user_id, text="Хотите добавить ингредиенты?", reply_markup=markup1)