нужно реализовать ввод даты и времени через машинное состояние в боте на aiogram, чтобы данные(дата и время) заносились в таблицу и можно было эти данные потом выводить. И чтобы дата и время не повторялись в бд
class FSMRegisters(StatesGroup):
fname = State()
date = State()
time = State()
@dp.message_handler(text='Запись к мастеру', state=None)
async def cm_registers(message: types.Message):
await db.cmd_start_db(message.from_user.id)
await FSMRegisters.fname.set()
await message.answer('Ввведите ваше имя')
@dp.message_handler(state=FSMRegisters.fname)
async def load_phone(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['fname'] = message.text
await FSMRegisters.next()
await message.answer('Введите удобную для вас дату')
@dp.message_handler(state=FSMRegisters.date)
async def load_date(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['date'] = message.text
await FSMRegisters.next()
await message.answer('Введите удобное для вас время')
@dp.message_handler(state=FSMRegisters.time)
async def load_time(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['time'] = message.text
Безусловно создал таблицу в БД для этого всего дела. И вот часть кода из БД:
async def cmd_add_users(state):
async with state.proxy() as data:
cur.execute("INSERT INTO users VALUES (?, ?, ?)", tuple(data.values()))
db.commit()