diff --git a/database/DogAcademy.db b/database/DogAcademy.db index 97ef5a0..d611985 100644 Binary files a/database/DogAcademy.db and b/database/DogAcademy.db differ diff --git a/database/db_events.py b/database/db_events.py index 6bb41f9..8e6ae9a 100644 --- a/database/db_events.py +++ b/database/db_events.py @@ -31,14 +31,14 @@ def create_user(login, password, username): if session.query(Auth).filter_by(login=login).first(): return False, "Логин уже используется." - # Создаём новую запись в таблице Auth + # Создание новой записи в таблице Auth new_auth = Auth(login=login, password=password) session.add(new_auth) try: - session.commit() # Сохраняем изменения в таблице Auth + session.commit() # Сохранение изменений в таблице Auth - # Создаём новую запись в таблице Users, связываем с только что добавленным Auth + # Создание новой записи в таблице Users, связываем с только что добавленным Auth new_user = Users(user_id=new_auth.user_id, username=username) session.add(new_user) session.commit() # Сохраняем изменения в таблице Users @@ -220,7 +220,7 @@ def get_all_dogs(): """Получить все записи о собаках.""" session = get_session() try: - dogs = session.query(Dogs).all() + dogs = session.query(Dogs).all() # Запрос к базе данных для получения всех собак return dogs except SQLAlchemyError as e: print(f"Ошибка при получении собак: {e}") @@ -275,22 +275,33 @@ def update_user_info(user_id, new_login, new_username): def delete_user(user_id): - """Удаление пользователя.""" + """Удаление пользователя по ID, включая связанные записи.""" session = get_session() try: + # Находим пользователя user = session.query(Users).filter_by(user_id=user_id).first() - if user: - session.delete(user.auth) - session.commit() - return True, "Пользователь удалён." - return False, "Пользователь не найден." + if not user: + return False, "Пользователь не найден." + + # Удаляем запись из Auth + auth = user.auth + if auth: + session.delete(auth) + + # Удаляем запись из Users + session.delete(user) + + # Фиксируем изменения + session.commit() + return True, "Пользователь успешно удалён." except SQLAlchemyError as e: session.rollback() - return False, f"Ошибка при удалении: {e}" + return False, f"Ошибка при удалении пользователя: {e}" finally: session.close() + def update_dog_info(dog_id, breed, characteristics): """Обновление информации о собаке.""" session = get_session() @@ -338,4 +349,97 @@ def update_user_level(user_id, new_level): session.rollback() logging.error(f"Ошибка при обновлении уровня пользователя: {e}") finally: - session.close() \ No newline at end of file + session.close() + +def add_user_to_db(user_data): + """ + Добавление нового пользователя в базу данных. + Создаёт записи в таблицах Auth и Users. + """ + session = get_session() + try: + # Создание записи в таблице Auth + new_auth = Auth( + login=user_data['login'], + password=user_data['password'] + ) + session.add(new_auth) + session.flush() # Сохраняем, чтобы получить user_id для Users + + # Создание записи в таблице Users, связываем с Auth + new_user = Users( + user_id=new_auth.user_id, # Используем внешний ключ + username=user_data['username'], + level=user_data.get('level', 1), # Уровень по умолчанию 1 + achievement=user_data.get('achievement', None) # По умолчанию пусто + ) + session.add(new_user) + session.commit() + print(f"Пользователь {user_data['username']} успешно добавлен.") + except SQLAlchemyError as e: + session.rollback() + print(f"Ошибка при добавлении пользователя: {e}") + raise # Пробрасываем исключение для обработки + finally: + session.close() + + +def add_question_to_db(question_data): + session = get_session() + try: + new_question = Questions(**question_data) + session.add(new_question) + session.commit() + print(f"Вопрос успешно добавлен: {question_data['question_text']}") + except SQLAlchemyError as e: + print(f"Ошибка при добавлении вопроса: {e}") + session.rollback() + finally: + session.close() + +def add_dog_to_db(dog_data): + session = get_session() + try: + new_dog = Dogs(**dog_data) + session.add(new_dog) + session.commit() + print(f"Собака успешно добавлена: {dog_data['breed']}") + except SQLAlchemyError as e: + print(f"Ошибка при добавлении собаки: {e}") + session.rollback() + finally: + session.close() + +def delete_dog(dog_id): + """Удаление породы собак по ID.""" + session = get_session() + try: + dog = session.query(Dogs).filter_by(dog_id=dog_id).first() + if dog: + session.delete(dog) + session.commit() + print(f"Порода с ID {dog_id} успешно удалена.") + return True, "Порода успешно удалена." + return False, "Порода не найдена." + except SQLAlchemyError as e: + session.rollback() + return False, f"Ошибка при удалении: {e}" + finally: + session.close() + +def delete_question(question_id): + """Удаление вопроса по ID.""" + session = get_session() + try: + question = session.query(Questions).filter_by(question_id=question_id).first() + if question: + session.delete(question) + session.commit() + return True, "Вопрос успешно удалён." + return False, "Вопрос не найден." + except SQLAlchemyError as e: + session.rollback() + return False, f"Ошибка при удалении: {e}" + finally: + session.close() + diff --git a/database/db_session.py b/database/db_session.py index 9a15408..72ea11d 100644 --- a/database/db_session.py +++ b/database/db_session.py @@ -14,7 +14,7 @@ Session = sessionmaker(bind=engine, autoflush=True) current_session = None def create_session(): - """Создаёт сессию для работы с базой данных.""" + """Создание сессии для работы с базой данных.""" return Session() def init_db(refresh=False): @@ -26,10 +26,10 @@ def init_db(refresh=False): if not os.path.exists("database/DogAcademy.db") or refresh: if refresh: print("Обновление базы данных: удаление старых таблиц...") - Base.metadata.drop_all(bind=engine) # Удаляем все таблицы + Base.metadata.drop_all(bind=engine) # Удалить все таблицы print("Создание базы данных и таблиц...") - Base.metadata.create_all(bind=engine) # Создаём таблицы заново + Base.metadata.create_all(bind=engine) # Создать таблицы заново else: print("База данных уже существует. Обновление не требуется.") @@ -38,7 +38,7 @@ def init_db(refresh=False): def get_session(): """Возвращает сессию для работы с базой данных.""" - return Session() # Просто возвращаем объект сессии + return Session() def close_sessions(): """Закрытие всех сессий перед выходом из программы.""" diff --git a/database/models.py b/database/models.py index 198f0dc..f45dea6 100644 --- a/database/models.py +++ b/database/models.py @@ -11,8 +11,8 @@ class Auth(Base): login = Column(String, unique=True, nullable=False) password = Column(String, nullable=False) - # Связь с таблицей Users - user = relationship("Users", back_populates="auth", uselist=False) + user = relationship("Users", back_populates="auth", cascade="all, delete-orphan", uselist=False) + class Users(Base): diff --git a/logs/logfile.log b/logs/logfile.log index c4067c2..dc2a9c3 100644 --- a/logs/logfile.log +++ b/logs/logfile.log @@ -23873,3 +23873,942 @@ WHERE users.user_id = ? LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id 2024-12-05 23:04:35 - [generated in 0.00031s] (1, 1, 0) 2024-12-05 23:04:35 - ROLLBACK +2024-12-06 20:30:09 - . +2024-12-06 20:30:09 - BEGIN (implicit) +2024-12-06 20:30:09 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 20:30:09 - [generated in 0.00044s] (1, 1, 0) +2024-12-06 20:30:09 - ROLLBACK +2024-12-06 21:58:39 - . +2024-12-06 21:58:39 - BEGIN (implicit) +2024-12-06 21:58:39 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 21:58:39 - [generated in 0.00028s] (1, 1, 0) +2024-12-06 21:58:39 - ROLLBACK +2024-12-06 22:09:04 - . +2024-12-06 22:09:04 - BEGIN (implicit) +2024-12-06 22:09:04 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:09:04 - [generated in 0.00031s] (1, 1, 0) +2024-12-06 22:09:04 - ROLLBACK +2024-12-06 22:09:20 - BEGIN (implicit) +2024-12-06 22:09:20 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:09:20 - [generated in 0.00026s] () +2024-12-06 22:09:20 - ROLLBACK +2024-12-06 22:09:47 - BEGIN (implicit) +2024-12-06 22:09:47 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:09:47 - [cached since 27.63s ago] () +2024-12-06 22:09:47 - ROLLBACK +2024-12-06 22:09:55 - BEGIN (implicit) +2024-12-06 22:09:55 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:09:55 - [generated in 0.00024s] () +2024-12-06 22:09:55 - ROLLBACK +2024-12-06 22:19:41 - . +2024-12-06 22:19:41 - BEGIN (implicit) +2024-12-06 22:19:41 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:19:41 - [generated in 0.00029s] (1, 1, 0) +2024-12-06 22:19:41 - ROLLBACK +2024-12-06 22:19:57 - BEGIN (implicit) +2024-12-06 22:19:57 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:19:57 - [generated in 0.00023s] () +2024-12-06 22:19:57 - ROLLBACK +2024-12-06 22:20:00 - BEGIN (implicit) +2024-12-06 22:20:00 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:20:00 - [generated in 0.00017s] () +2024-12-06 22:20:00 - ROLLBACK +2024-12-06 22:20:00 - BEGIN (implicit) +2024-12-06 22:20:00 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:20:00 - [generated in 0.00018s] () +2024-12-06 22:20:00 - ROLLBACK +2024-12-06 22:20:10 - BEGIN (implicit) +2024-12-06 22:20:10 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:20:10 - [cached since 12.5s ago] () +2024-12-06 22:20:10 - ROLLBACK +2024-12-06 22:20:10 - BEGIN (implicit) +2024-12-06 22:20:10 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:20:10 - [cached since 10.11s ago] () +2024-12-06 22:20:10 - ROLLBACK +2024-12-06 22:20:10 - BEGIN (implicit) +2024-12-06 22:20:10 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:20:10 - [cached since 9.383s ago] () +2024-12-06 22:20:10 - ROLLBACK +2024-12-06 22:20:13 - BEGIN (implicit) +2024-12-06 22:20:13 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:20:13 - [cached since 15.86s ago] () +2024-12-06 22:20:13 - ROLLBACK +2024-12-06 22:20:13 - BEGIN (implicit) +2024-12-06 22:20:13 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:20:13 - [cached since 13.47s ago] () +2024-12-06 22:20:13 - ROLLBACK +2024-12-06 22:20:13 - BEGIN (implicit) +2024-12-06 22:20:13 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:20:13 - [cached since 12.75s ago] () +2024-12-06 22:20:13 - ROLLBACK +2024-12-06 22:20:14 - BEGIN (implicit) +2024-12-06 22:20:14 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:20:14 - [cached since 17.3s ago] () +2024-12-06 22:20:14 - ROLLBACK +2024-12-06 22:20:16 - BEGIN (implicit) +2024-12-06 22:20:16 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:20:16 - [cached since 18.95s ago] () +2024-12-06 22:20:16 - ROLLBACK +2024-12-06 22:20:16 - BEGIN (implicit) +2024-12-06 22:20:16 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:20:16 - [cached since 16.56s ago] () +2024-12-06 22:20:16 - ROLLBACK +2024-12-06 22:20:16 - BEGIN (implicit) +2024-12-06 22:20:16 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:20:16 - [cached since 15.83s ago] () +2024-12-06 22:20:16 - ROLLBACK +2024-12-06 22:33:35 - . +2024-12-06 22:33:35 - BEGIN (implicit) +2024-12-06 22:33:35 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:33:35 - [generated in 0.00028s] (1, 1, 0) +2024-12-06 22:33:35 - ROLLBACK +2024-12-06 22:33:52 - BEGIN (implicit) +2024-12-06 22:33:52 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:33:53 - [generated in 0.00018s] () +2024-12-06 22:33:53 - ROLLBACK +2024-12-06 22:33:59 - BEGIN (implicit) +2024-12-06 22:33:59 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:33:59 - [generated in 0.00016s] () +2024-12-06 22:33:59 - ROLLBACK +2024-12-06 22:34:00 - BEGIN (implicit) +2024-12-06 22:34:00 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:34:00 - [generated in 0.00015s] () +2024-12-06 22:34:00 - ROLLBACK +2024-12-06 22:34:03 - BEGIN (implicit) +2024-12-06 22:34:03 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:34:03 - [cached since 10.46s ago] () +2024-12-06 22:34:03 - ROLLBACK +2024-12-06 22:34:03 - BEGIN (implicit) +2024-12-06 22:34:03 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:34:03 - [cached since 3.564s ago] () +2024-12-06 22:34:03 - ROLLBACK +2024-12-06 22:34:03 - BEGIN (implicit) +2024-12-06 22:34:03 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:34:03 - [cached since 2.499s ago] () +2024-12-06 22:34:03 - ROLLBACK +2024-12-06 22:34:38 - BEGIN (implicit) +2024-12-06 22:34:38 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:34:38 - [cached since 45.41s ago] () +2024-12-06 22:34:38 - ROLLBACK +2024-12-06 22:34:40 - BEGIN (implicit) +2024-12-06 22:34:40 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:34:40 - [cached since 47.35s ago] () +2024-12-06 22:34:40 - ROLLBACK +2024-12-06 22:34:46 - BEGIN (implicit) +2024-12-06 22:34:46 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:34:46 - [generated in 0.00016s] ('1', 1, 0) +2024-12-06 22:34:46 - SELECT auth.user_id AS auth_user_id, auth.login AS auth_login, auth.password AS auth_password +FROM auth +WHERE auth.user_id = ? +2024-12-06 22:34:46 - [generated in 0.00018s] (1,) +2024-12-06 22:34:46 - ROLLBACK +2024-12-06 22:34:55 - BEGIN (implicit) +2024-12-06 22:34:55 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:34:55 - [cached since 9.211s ago] ('2', 1, 0) +2024-12-06 22:34:55 - SELECT auth.user_id AS auth_user_id, auth.login AS auth_login, auth.password AS auth_password +FROM auth +WHERE auth.user_id = ? +2024-12-06 22:34:55 - [cached since 9.21s ago] (2,) +2024-12-06 22:34:55 - ROLLBACK +2024-12-06 22:35:00 - BEGIN (implicit) +2024-12-06 22:35:00 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:35:00 - [cached since 67.38s ago] () +2024-12-06 22:35:00 - ROLLBACK +2024-12-06 22:37:06 - . +2024-12-06 22:37:06 - BEGIN (implicit) +2024-12-06 22:37:06 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:37:06 - [generated in 0.00030s] (1, 1, 0) +2024-12-06 22:37:06 - ROLLBACK +2024-12-06 22:37:18 - BEGIN (implicit) +2024-12-06 22:37:18 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:37:18 - [generated in 0.00023s] () +2024-12-06 22:37:18 - ROLLBACK +2024-12-06 22:37:33 - BEGIN (implicit) +2024-12-06 22:37:33 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:37:33 - [generated in 0.00018s] ('1', 1, 0) +2024-12-06 22:37:33 - SELECT auth.user_id AS auth_user_id, auth.login AS auth_login, auth.password AS auth_password +FROM auth +WHERE auth.user_id = ? +2024-12-06 22:37:33 - [generated in 0.00019s] (1,) +2024-12-06 22:37:33 - SELECT game_sessions.session_id AS game_sessions_session_id, game_sessions.user_id AS game_sessions_user_id, game_sessions.level AS game_sessions_level, game_sessions.score AS game_sessions_score, game_sessions.duration AS game_sessions_duration, game_sessions.steps AS game_sessions_steps, game_sessions.start_time AS game_sessions_start_time, game_sessions.end_time AS game_sessions_end_time, game_sessions.health AS game_sessions_health, game_sessions.hunger AS game_sessions_hunger, game_sessions.sleepiness AS game_sessions_sleepiness +FROM game_sessions +WHERE ? = game_sessions.user_id +2024-12-06 22:37:33 - [generated in 0.00025s] (1,) +2024-12-06 22:37:33 - SELECT notifications.notification_id AS notifications_notification_id, notifications.user_id AS notifications_user_id, notifications.message AS notifications_message, notifications.timestamp AS notifications_timestamp, notifications.is_read AS notifications_is_read +FROM notifications +WHERE ? = notifications.user_id +2024-12-06 22:37:33 - [generated in 0.00017s] (1,) +2024-12-06 22:37:33 - UPDATE game_sessions SET user_id=? WHERE game_sessions.session_id = ? +2024-12-06 22:37:33 - [generated in 0.00023s] [(None, 1), (None, 2), (None, 3), (None, 4), (None, 7), (None, 8), (None, 9)] +2024-12-06 22:37:33 - DELETE FROM users WHERE users.user_id = ? +2024-12-06 22:37:33 - [generated in 0.00028s] (1,) +2024-12-06 22:37:33 - DELETE FROM auth WHERE auth.user_id = ? +2024-12-06 22:37:33 - [generated in 0.00018s] (1,) +2024-12-06 22:37:33 - COMMIT +2024-12-06 22:37:35 - BEGIN (implicit) +2024-12-06 22:37:35 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:37:35 - [cached since 17.45s ago] () +2024-12-06 22:37:35 - ROLLBACK +2024-12-06 22:37:39 - BEGIN (implicit) +2024-12-06 22:37:39 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:37:39 - [cached since 6.104s ago] ('2', 1, 0) +2024-12-06 22:37:39 - SELECT auth.user_id AS auth_user_id, auth.login AS auth_login, auth.password AS auth_password +FROM auth +WHERE auth.user_id = ? +2024-12-06 22:37:39 - [cached since 6.103s ago] (2,) +2024-12-06 22:37:39 - SELECT game_sessions.session_id AS game_sessions_session_id, game_sessions.user_id AS game_sessions_user_id, game_sessions.level AS game_sessions_level, game_sessions.score AS game_sessions_score, game_sessions.duration AS game_sessions_duration, game_sessions.steps AS game_sessions_steps, game_sessions.start_time AS game_sessions_start_time, game_sessions.end_time AS game_sessions_end_time, game_sessions.health AS game_sessions_health, game_sessions.hunger AS game_sessions_hunger, game_sessions.sleepiness AS game_sessions_sleepiness +FROM game_sessions +WHERE ? = game_sessions.user_id +2024-12-06 22:37:39 - [cached since 6.099s ago] (2,) +2024-12-06 22:37:39 - SELECT notifications.notification_id AS notifications_notification_id, notifications.user_id AS notifications_user_id, notifications.message AS notifications_message, notifications.timestamp AS notifications_timestamp, notifications.is_read AS notifications_is_read +FROM notifications +WHERE ? = notifications.user_id +2024-12-06 22:37:39 - [cached since 6.098s ago] (2,) +2024-12-06 22:37:39 - UPDATE game_sessions SET user_id=? WHERE game_sessions.session_id = ? +2024-12-06 22:37:39 - [cached since 6.096s ago] [(None, 5), (None, 6)] +2024-12-06 22:37:39 - DELETE FROM users WHERE users.user_id = ? +2024-12-06 22:37:39 - [cached since 6.093s ago] (2,) +2024-12-06 22:37:39 - DELETE FROM auth WHERE auth.user_id = ? +2024-12-06 22:37:39 - [cached since 6.092s ago] (2,) +2024-12-06 22:37:39 - COMMIT +2024-12-06 22:37:40 - BEGIN (implicit) +2024-12-06 22:37:40 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:37:40 - [cached since 21.7s ago] () +2024-12-06 22:37:40 - ROLLBACK +2024-12-06 22:40:05 - . +2024-12-06 22:40:05 - BEGIN (implicit) +2024-12-06 22:40:05 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:40:05 - [generated in 0.00030s] (1, 1, 0) +2024-12-06 22:40:05 - ROLLBACK +2024-12-06 22:40:17 - BEGIN (implicit) +2024-12-06 22:40:17 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:40:17 - [generated in 0.00021s] () +2024-12-06 22:40:17 - ROLLBACK +2024-12-06 22:40:26 - BEGIN (implicit) +2024-12-06 22:40:26 - INSERT INTO auth (login, password) VALUES (?, ?) +2024-12-06 22:40:26 - [generated in 0.00017s] ('qwe', 'qwe') +2024-12-06 22:40:26 - INSERT INTO users (user_id, dog_id, username, level, achievement) VALUES (?, ?, ?, ?, ?) +2024-12-06 22:40:26 - [generated in 0.00023s] (1, None, 'meow', 1, None) +2024-12-06 22:40:26 - COMMIT +2024-12-06 22:40:28 - BEGIN (implicit) +2024-12-06 22:40:28 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:40:28 - [cached since 10.83s ago] () +2024-12-06 22:40:28 - ROLLBACK +2024-12-06 22:45:29 - . +2024-12-06 22:45:29 - BEGIN (implicit) +2024-12-06 22:45:29 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:45:29 - [generated in 0.00030s] (1, 1, 0) +2024-12-06 22:45:29 - ROLLBACK +2024-12-06 22:45:42 - BEGIN (implicit) +2024-12-06 22:45:42 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:45:42 - [generated in 0.00022s] () +2024-12-06 22:45:42 - ROLLBACK +2024-12-06 22:46:23 - BEGIN (implicit) +2024-12-06 22:46:23 - INSERT INTO auth (login, password) VALUES (?, ?) +2024-12-06 22:46:23 - [generated in 0.00017s] ('lubluNikitu', 'meow123') +2024-12-06 22:46:23 - INSERT INTO users (user_id, dog_id, username, level, achievement) VALUES (?, ?, ?, ?, ?) +2024-12-06 22:46:23 - [generated in 0.00022s] (2, None, 'umenyashizazovutNikita', 1, None) +2024-12-06 22:46:23 - COMMIT +2024-12-06 22:46:24 - BEGIN (implicit) +2024-12-06 22:46:24 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:46:24 - [cached since 42.66s ago] () +2024-12-06 22:46:24 - ROLLBACK +2024-12-06 22:46:38 - BEGIN (implicit) +2024-12-06 22:46:38 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:46:38 - [generated in 0.00015s] () +2024-12-06 22:46:38 - ROLLBACK +2024-12-06 22:47:01 - BEGIN (implicit) +2024-12-06 22:47:01 - INSERT INTO questions (dog_id, question_text, image_url, helpful_info, incorrect_attempts) VALUES (?, ?, ?, ?, ?) +2024-12-06 22:47:01 - [generated in 0.00018s] (8, 'sdfgsdfg', 'asdasd', 'asdasd', 0) +2024-12-06 22:47:01 - COMMIT +2024-12-06 22:47:04 - BEGIN (implicit) +2024-12-06 22:47:04 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:47:04 - [cached since 25.59s ago] () +2024-12-06 22:47:04 - ROLLBACK +2024-12-06 22:47:13 - BEGIN (implicit) +2024-12-06 22:47:13 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:47:13 - [generated in 0.00016s] ('15', 1, 0) +2024-12-06 22:47:13 - ROLLBACK +2024-12-06 22:47:21 - BEGIN (implicit) +2024-12-06 22:47:21 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:47:21 - [cached since 42.88s ago] () +2024-12-06 22:47:21 - ROLLBACK +2024-12-06 22:47:25 - BEGIN (implicit) +2024-12-06 22:47:25 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:47:25 - [cached since 12.82s ago] ('15', 1, 0) +2024-12-06 22:47:25 - ROLLBACK +2024-12-06 22:49:33 - . +2024-12-06 22:49:33 - BEGIN (implicit) +2024-12-06 22:49:33 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:49:33 - [generated in 0.00030s] (1, 1, 0) +2024-12-06 22:49:33 - ROLLBACK +2024-12-06 22:49:45 - BEGIN (implicit) +2024-12-06 22:49:45 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:49:45 - [generated in 0.00022s] () +2024-12-06 22:49:45 - ROLLBACK +2024-12-06 22:49:47 - BEGIN (implicit) +2024-12-06 22:49:47 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +WHERE questions.question_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:49:47 - [generated in 0.00018s] ('15', 1, 0) +2024-12-06 22:49:47 - DELETE FROM questions WHERE questions.question_id = ? +2024-12-06 22:49:47 - [generated in 0.00015s] (15,) +2024-12-06 22:49:47 - COMMIT +2024-12-06 22:49:48 - BEGIN (implicit) +2024-12-06 22:49:48 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:49:48 - [cached since 3.203s ago] () +2024-12-06 22:49:49 - ROLLBACK +2024-12-06 22:49:50 - BEGIN (implicit) +2024-12-06 22:49:50 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:49:50 - [generated in 0.00016s] () +2024-12-06 22:49:50 - ROLLBACK +2024-12-06 22:49:50 - BEGIN (implicit) +2024-12-06 22:49:50 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:49:50 - [generated in 0.00029s] () +2024-12-06 22:49:50 - ROLLBACK +2024-12-06 22:49:50 - BEGIN (implicit) +2024-12-06 22:49:50 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:49:50 - [cached since 4.468s ago] () +2024-12-06 22:49:50 - ROLLBACK +2024-12-06 22:49:54 - BEGIN (implicit) +2024-12-06 22:49:54 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:49:54 - [cached since 4.133s ago] () +2024-12-06 22:49:54 - ROLLBACK +2024-12-06 22:50:15 - BEGIN (implicit) +2024-12-06 22:50:15 - INSERT INTO dogs (breed, characteristics, behavior, care_info, admin_comments) VALUES (?, ?, ?, ?, ?) +2024-12-06 22:50:15 - [generated in 0.00019s] ('hui', 'hui', 'hui', 'hui', 'hui') +2024-12-06 22:50:15 - COMMIT +2024-12-06 22:50:19 - BEGIN (implicit) +2024-12-06 22:50:19 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:50:19 - [cached since 29.38s ago] () +2024-12-06 22:50:19 - ROLLBACK +2024-12-06 22:50:30 - BEGIN (implicit) +2024-12-06 22:50:30 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +WHERE dogs.dog_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:50:30 - [generated in 0.00019s] ('8', 1, 0) +2024-12-06 22:50:30 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE ? = users.dog_id +2024-12-06 22:50:30 - [generated in 0.00017s] (8,) +2024-12-06 22:50:30 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +WHERE ? = questions.dog_id +2024-12-06 22:50:30 - [generated in 0.00015s] (8,) +2024-12-06 22:50:30 - DELETE FROM dogs WHERE dogs.dog_id = ? +2024-12-06 22:50:30 - [generated in 0.00014s] (8,) +2024-12-06 22:50:30 - COMMIT +2024-12-06 22:50:31 - BEGIN (implicit) +2024-12-06 22:50:31 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:50:31 - [cached since 41.5s ago] () +2024-12-06 22:50:31 - ROLLBACK +2024-12-06 22:55:19 - . +2024-12-06 22:55:19 - BEGIN (implicit) +2024-12-06 22:55:19 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:55:19 - [generated in 0.00030s] (1, 1, 0) +2024-12-06 22:55:19 - ROLLBACK +2024-12-06 22:55:33 - BEGIN (implicit) +2024-12-06 22:55:33 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:55:33 - [generated in 0.00017s] () +2024-12-06 22:55:33 - ROLLBACK +2024-12-06 22:55:35 - BEGIN (implicit) +2024-12-06 22:55:35 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:55:35 - [generated in 0.00015s] () +2024-12-06 22:55:35 - ROLLBACK +2024-12-06 22:55:37 - BEGIN (implicit) +2024-12-06 22:55:37 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:55:37 - [generated in 0.00015s] () +2024-12-06 22:55:37 - ROLLBACK +2024-12-06 22:55:50 - BEGIN (implicit) +2024-12-06 22:55:50 - INSERT INTO dogs (breed, characteristics, behavior, care_info, admin_comments) VALUES (?, ?, ?, ?, ?) +2024-12-06 22:55:50 - [generated in 0.00019s] ('qwe', 'qwe', 'qwe', 'qwe', 'qwe') +2024-12-06 22:55:50 - COMMIT +2024-12-06 22:55:52 - BEGIN (implicit) +2024-12-06 22:55:52 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:55:52 - [cached since 14.81s ago] () +2024-12-06 22:55:52 - ROLLBACK +2024-12-06 22:57:06 - . +2024-12-06 22:57:06 - BEGIN (implicit) +2024-12-06 22:57:06 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:57:06 - [generated in 0.00040s] (1, 1, 0) +2024-12-06 22:57:06 - ROLLBACK +2024-12-06 22:57:18 - BEGIN (implicit) +2024-12-06 22:57:18 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:57:18 - [generated in 0.00017s] () +2024-12-06 22:57:18 - ROLLBACK +2024-12-06 22:57:43 - BEGIN (implicit) +2024-12-06 22:57:43 - INSERT INTO questions (dog_id, question_text, image_url, helpful_info, incorrect_attempts) VALUES (?, ?, ?, ?, ?) +2024-12-06 22:57:43 - [generated in 0.00019s] (5, 'qwe', 'qwe', 'qwe', 0) +2024-12-06 22:57:43 - COMMIT +2024-12-06 22:57:48 - BEGIN (implicit) +2024-12-06 22:57:48 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:57:48 - [cached since 30.35s ago] () +2024-12-06 22:57:48 - ROLLBACK +2024-12-06 22:57:55 - BEGIN (implicit) +2024-12-06 22:57:55 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +WHERE questions.question_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:57:55 - [generated in 0.00021s] ('15', 1, 0) +2024-12-06 22:57:55 - DELETE FROM questions WHERE questions.question_id = ? +2024-12-06 22:57:55 - [generated in 0.00016s] (15,) +2024-12-06 22:57:55 - COMMIT +2024-12-06 22:57:55 - BEGIN (implicit) +2024-12-06 22:57:55 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:57:55 - [cached since 37.42s ago] () +2024-12-06 22:57:55 - ROLLBACK +2024-12-06 22:58:36 - . +2024-12-06 22:58:36 - BEGIN (implicit) +2024-12-06 22:58:36 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 22:58:36 - [generated in 0.00040s] (1, 1, 0) +2024-12-06 22:58:36 - ROLLBACK +2024-12-06 22:58:50 - BEGIN (implicit) +2024-12-06 22:58:50 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:58:50 - [generated in 0.00018s] () +2024-12-06 22:58:50 - ROLLBACK +2024-12-06 22:58:51 - BEGIN (implicit) +2024-12-06 22:58:51 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:58:51 - [generated in 0.00015s] () +2024-12-06 22:58:51 - ROLLBACK +2024-12-06 22:58:55 - BEGIN (implicit) +2024-12-06 22:58:55 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +WHERE dogs.dog_id = ? + LIMIT ? OFFSET ? +2024-12-06 22:58:55 - [generated in 0.00016s] ('8', 1, 0) +2024-12-06 22:58:55 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE ? = users.dog_id +2024-12-06 22:58:55 - [generated in 0.00017s] (8,) +2024-12-06 22:58:55 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +WHERE ? = questions.dog_id +2024-12-06 22:58:55 - [generated in 0.00014s] (8,) +2024-12-06 22:58:55 - DELETE FROM dogs WHERE dogs.dog_id = ? +2024-12-06 22:58:55 - [generated in 0.00021s] (8,) +2024-12-06 22:58:55 - COMMIT +2024-12-06 22:58:57 - BEGIN (implicit) +2024-12-06 22:58:57 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:58:57 - [cached since 5.518s ago] () +2024-12-06 22:58:57 - ROLLBACK +2024-12-06 22:59:02 - BEGIN (implicit) +2024-12-06 22:59:02 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 22:59:02 - [generated in 0.00017s] () +2024-12-06 22:59:02 - ROLLBACK +2024-12-06 22:59:02 - BEGIN (implicit) +2024-12-06 22:59:02 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 22:59:02 - [cached since 10.59s ago] () +2024-12-06 22:59:02 - ROLLBACK +2024-12-06 22:59:02 - BEGIN (implicit) +2024-12-06 22:59:02 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 22:59:02 - [cached since 11.64s ago] () +2024-12-06 22:59:02 - ROLLBACK +2024-12-06 23:00:28 - . +2024-12-06 23:00:28 - BEGIN (implicit) +2024-12-06 23:00:28 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:00:28 - [generated in 0.00029s] (1, 1, 0) +2024-12-06 23:00:28 - ROLLBACK +2024-12-06 23:00:39 - BEGIN (implicit) +2024-12-06 23:00:39 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:00:39 - [generated in 0.00017s] () +2024-12-06 23:00:39 - ROLLBACK +2024-12-06 23:00:39 - BEGIN (implicit) +2024-12-06 23:00:39 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:00:39 - [generated in 0.00016s] () +2024-12-06 23:00:39 - ROLLBACK +2024-12-06 23:00:39 - BEGIN (implicit) +2024-12-06 23:00:39 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:00:39 - [generated in 0.00014s] () +2024-12-06 23:00:39 - ROLLBACK +2024-12-06 23:01:09 - . +2024-12-06 23:01:09 - BEGIN (implicit) +2024-12-06 23:01:09 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:01:09 - [generated in 0.00034s] (1, 1, 0) +2024-12-06 23:01:09 - ROLLBACK +2024-12-06 23:01:22 - BEGIN (implicit) +2024-12-06 23:01:22 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:01:22 - [generated in 0.00027s] () +2024-12-06 23:01:22 - ROLLBACK +2024-12-06 23:01:22 - BEGIN (implicit) +2024-12-06 23:01:22 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:01:22 - [generated in 0.00015s] () +2024-12-06 23:01:22 - ROLLBACK +2024-12-06 23:01:22 - BEGIN (implicit) +2024-12-06 23:01:22 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:01:22 - [generated in 0.00015s] () +2024-12-06 23:01:22 - ROLLBACK +2024-12-06 23:03:06 - . +2024-12-06 23:03:06 - BEGIN (implicit) +2024-12-06 23:03:06 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:03:06 - [generated in 0.00029s] (1, 1, 0) +2024-12-06 23:03:06 - ROLLBACK +2024-12-06 23:03:17 - BEGIN (implicit) +2024-12-06 23:03:17 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:03:17 - [generated in 0.00023s] () +2024-12-06 23:03:17 - ROLLBACK +2024-12-06 23:03:19 - BEGIN (implicit) +2024-12-06 23:03:19 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:03:19 - [cached since 1.727s ago] () +2024-12-06 23:03:19 - ROLLBACK +2024-12-06 23:03:19 - BEGIN (implicit) +2024-12-06 23:03:19 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:03:19 - [generated in 0.00023s] () +2024-12-06 23:03:19 - ROLLBACK +2024-12-06 23:03:19 - BEGIN (implicit) +2024-12-06 23:03:19 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:03:19 - [generated in 0.00024s] () +2024-12-06 23:03:19 - ROLLBACK +2024-12-06 23:08:18 - . +2024-12-06 23:08:18 - BEGIN (implicit) +2024-12-06 23:08:18 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:08:18 - [generated in 0.00031s] (1, 1, 0) +2024-12-06 23:08:18 - ROLLBACK +2024-12-06 23:08:32 - BEGIN (implicit) +2024-12-06 23:08:32 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:08:32 - [generated in 0.00017s] () +2024-12-06 23:08:32 - ROLLBACK +2024-12-06 23:08:32 - BEGIN (implicit) +2024-12-06 23:08:32 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:08:32 - [generated in 0.00015s] () +2024-12-06 23:08:32 - ROLLBACK +2024-12-06 23:08:32 - BEGIN (implicit) +2024-12-06 23:08:32 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:08:32 - [generated in 0.00014s] () +2024-12-06 23:08:32 - ROLLBACK +2024-12-06 23:10:00 - . +2024-12-06 23:10:00 - BEGIN (implicit) +2024-12-06 23:10:00 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:10:00 - [generated in 0.00051s] (1, 1, 0) +2024-12-06 23:10:00 - ROLLBACK +2024-12-06 23:10:11 - BEGIN (implicit) +2024-12-06 23:10:11 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:10:11 - [generated in 0.00017s] () +2024-12-06 23:10:11 - ROLLBACK +2024-12-06 23:10:11 - BEGIN (implicit) +2024-12-06 23:10:11 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:10:11 - [generated in 0.00014s] () +2024-12-06 23:10:11 - ROLLBACK +2024-12-06 23:10:11 - BEGIN (implicit) +2024-12-06 23:10:11 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:10:11 - [generated in 0.00015s] () +2024-12-06 23:10:11 - ROLLBACK +2024-12-06 23:16:07 - . +2024-12-06 23:16:07 - BEGIN (implicit) +2024-12-06 23:16:07 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:16:07 - [generated in 0.00030s] (1, 1, 0) +2024-12-06 23:16:07 - ROLLBACK +2024-12-06 23:16:19 - BEGIN (implicit) +2024-12-06 23:16:19 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:16:19 - [generated in 0.00021s] () +2024-12-06 23:16:19 - ROLLBACK +2024-12-06 23:16:20 - BEGIN (implicit) +2024-12-06 23:16:20 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:16:20 - [generated in 0.00017s] () +2024-12-06 23:16:20 - ROLLBACK +2024-12-06 23:16:21 - BEGIN (implicit) +2024-12-06 23:16:21 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:16:21 - [generated in 0.00029s] () +2024-12-06 23:16:21 - ROLLBACK +2024-12-06 23:16:23 - BEGIN (implicit) +2024-12-06 23:16:23 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:16:23 - [cached since 4.861s ago] () +2024-12-06 23:16:23 - ROLLBACK +2024-12-06 23:16:23 - BEGIN (implicit) +2024-12-06 23:16:23 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:16:23 - [cached since 2.612s ago] () +2024-12-06 23:16:23 - ROLLBACK +2024-12-06 23:16:23 - BEGIN (implicit) +2024-12-06 23:16:23 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:16:23 - [cached since 3.351s ago] () +2024-12-06 23:16:23 - ROLLBACK +2024-12-06 23:16:47 - . +2024-12-06 23:16:47 - BEGIN (implicit) +2024-12-06 23:16:47 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:16:47 - [generated in 0.00032s] (1, 1, 0) +2024-12-06 23:16:47 - ROLLBACK +2024-12-06 23:16:59 - BEGIN (implicit) +2024-12-06 23:16:59 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:16:59 - [generated in 0.00020s] () +2024-12-06 23:16:59 - ROLLBACK +2024-12-06 23:16:59 - BEGIN (implicit) +2024-12-06 23:16:59 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:16:59 - [generated in 0.00015s] () +2024-12-06 23:16:59 - ROLLBACK +2024-12-06 23:16:59 - BEGIN (implicit) +2024-12-06 23:16:59 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:16:59 - [generated in 0.00025s] () +2024-12-06 23:16:59 - ROLLBACK +2024-12-06 23:19:08 - . +2024-12-06 23:19:08 - BEGIN (implicit) +2024-12-06 23:19:08 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:19:08 - [generated in 0.00031s] (1, 1, 0) +2024-12-06 23:19:08 - ROLLBACK +2024-12-06 23:19:22 - BEGIN (implicit) +2024-12-06 23:19:22 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:19:22 - [generated in 0.00019s] () +2024-12-06 23:19:22 - ROLLBACK +2024-12-06 23:19:22 - BEGIN (implicit) +2024-12-06 23:19:22 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:19:22 - [generated in 0.00015s] () +2024-12-06 23:19:22 - ROLLBACK +2024-12-06 23:19:22 - BEGIN (implicit) +2024-12-06 23:19:22 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:19:22 - [generated in 0.00014s] () +2024-12-06 23:19:22 - ROLLBACK +2024-12-06 23:22:18 - . +2024-12-06 23:22:18 - BEGIN (implicit) +2024-12-06 23:22:18 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:22:18 - [generated in 0.00042s] (1, 1, 0) +2024-12-06 23:22:18 - ROLLBACK +2024-12-06 23:22:35 - BEGIN (implicit) +2024-12-06 23:22:35 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:22:35 - [generated in 0.00017s] () +2024-12-06 23:22:35 - ROLLBACK +2024-12-06 23:22:35 - BEGIN (implicit) +2024-12-06 23:22:35 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:22:35 - [generated in 0.00017s] () +2024-12-06 23:22:35 - ROLLBACK +2024-12-06 23:22:35 - BEGIN (implicit) +2024-12-06 23:22:35 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:22:35 - [generated in 0.00014s] () +2024-12-06 23:22:35 - ROLLBACK +2024-12-06 23:29:22 - . +2024-12-06 23:29:22 - BEGIN (implicit) +2024-12-06 23:29:22 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:29:22 - [generated in 0.00030s] (1, 1, 0) +2024-12-06 23:29:22 - ROLLBACK +2024-12-06 23:29:36 - BEGIN (implicit) +2024-12-06 23:29:36 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:29:36 - [generated in 0.00017s] () +2024-12-06 23:29:36 - ROLLBACK +2024-12-06 23:29:36 - BEGIN (implicit) +2024-12-06 23:29:36 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:29:36 - [generated in 0.00018s] () +2024-12-06 23:29:36 - ROLLBACK +2024-12-06 23:29:36 - BEGIN (implicit) +2024-12-06 23:29:36 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:29:36 - [generated in 0.00016s] () +2024-12-06 23:29:36 - ROLLBACK +2024-12-06 23:29:52 - . +2024-12-06 23:29:52 - BEGIN (implicit) +2024-12-06 23:29:52 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:29:52 - [generated in 0.00029s] (1, 1, 0) +2024-12-06 23:29:52 - ROLLBACK +2024-12-06 23:30:12 - BEGIN (implicit) +2024-12-06 23:30:12 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:30:12 - [generated in 0.00019s] () +2024-12-06 23:30:12 - ROLLBACK +2024-12-06 23:30:12 - BEGIN (implicit) +2024-12-06 23:30:12 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:30:12 - [generated in 0.00015s] () +2024-12-06 23:30:12 - ROLLBACK +2024-12-06 23:30:12 - BEGIN (implicit) +2024-12-06 23:30:12 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:30:12 - [generated in 0.00015s] () +2024-12-06 23:30:12 - ROLLBACK +2024-12-06 23:33:20 - . +2024-12-06 23:33:20 - BEGIN (implicit) +2024-12-06 23:33:20 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:33:20 - [generated in 0.00026s] (1, 1, 0) +2024-12-06 23:33:20 - ROLLBACK +2024-12-06 23:35:31 - . +2024-12-06 23:35:31 - BEGIN (implicit) +2024-12-06 23:35:31 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:35:31 - [generated in 0.00027s] (1, 1, 0) +2024-12-06 23:35:31 - ROLLBACK +2024-12-06 23:35:44 - BEGIN (implicit) +2024-12-06 23:35:44 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:35:44 - [generated in 0.00018s] () +2024-12-06 23:35:44 - ROLLBACK +2024-12-06 23:35:46 - BEGIN (implicit) +2024-12-06 23:35:46 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:35:46 - [cached since 1.472s ago] () +2024-12-06 23:35:46 - ROLLBACK +2024-12-06 23:35:46 - BEGIN (implicit) +2024-12-06 23:35:46 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:35:46 - [generated in 0.00014s] () +2024-12-06 23:35:46 - ROLLBACK +2024-12-06 23:35:46 - BEGIN (implicit) +2024-12-06 23:35:46 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:35:46 - [generated in 0.00013s] () +2024-12-06 23:35:46 - ROLLBACK +2024-12-06 23:37:44 - . +2024-12-06 23:37:44 - BEGIN (implicit) +2024-12-06 23:37:44 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:37:44 - [generated in 0.00045s] (1, 1, 0) +2024-12-06 23:37:44 - ROLLBACK +2024-12-06 23:37:57 - BEGIN (implicit) +2024-12-06 23:37:57 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:37:57 - [generated in 0.00017s] () +2024-12-06 23:37:57 - ROLLBACK +2024-12-06 23:38:04 - BEGIN (implicit) +2024-12-06 23:38:04 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:38:04 - [generated in 0.00014s] () +2024-12-06 23:38:04 - ROLLBACK +2024-12-06 23:38:07 - BEGIN (implicit) +2024-12-06 23:38:07 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:38:07 - [generated in 0.00018s] () +2024-12-06 23:38:07 - ROLLBACK +2024-12-06 23:38:10 - BEGIN (implicit) +2024-12-06 23:38:10 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:38:10 - [cached since 13.4s ago] () +2024-12-06 23:38:10 - ROLLBACK +2024-12-06 23:38:10 - BEGIN (implicit) +2024-12-06 23:38:10 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:38:10 - [cached since 3.115s ago] () +2024-12-06 23:38:10 - ROLLBACK +2024-12-06 23:38:10 - BEGIN (implicit) +2024-12-06 23:38:10 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:38:10 - [cached since 6.136s ago] () +2024-12-06 23:38:10 - ROLLBACK +2024-12-06 23:39:04 - . +2024-12-06 23:39:04 - BEGIN (implicit) +2024-12-06 23:39:04 - SELECT anon_1.users_user_id AS anon_1_users_user_id, anon_1.users_dog_id AS anon_1_users_dog_id, anon_1.users_username AS anon_1_users_username, anon_1.users_level AS anon_1_users_level, anon_1.users_achievement AS anon_1_users_achievement, game_sessions_1.session_id AS game_sessions_1_session_id, game_sessions_1.user_id AS game_sessions_1_user_id, game_sessions_1.level AS game_sessions_1_level, game_sessions_1.score AS game_sessions_1_score, game_sessions_1.duration AS game_sessions_1_duration, game_sessions_1.steps AS game_sessions_1_steps, game_sessions_1.start_time AS game_sessions_1_start_time, game_sessions_1.end_time AS game_sessions_1_end_time, game_sessions_1.health AS game_sessions_1_health, game_sessions_1.hunger AS game_sessions_1_hunger, game_sessions_1.sleepiness AS game_sessions_1_sleepiness +FROM (SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement +FROM users +WHERE users.user_id = ? + LIMIT ? OFFSET ?) AS anon_1 LEFT OUTER JOIN game_sessions AS game_sessions_1 ON anon_1.users_user_id = game_sessions_1.user_id +2024-12-06 23:39:04 - [generated in 0.00038s] (1, 1, 0) +2024-12-06 23:39:04 - ROLLBACK +2024-12-06 23:39:19 - BEGIN (implicit) +2024-12-06 23:39:19 - SELECT users.user_id AS users_user_id, users.dog_id AS users_dog_id, users.username AS users_username, users.level AS users_level, users.achievement AS users_achievement, auth_1.user_id AS auth_1_user_id, auth_1.login AS auth_1_login, auth_1.password AS auth_1_password +FROM users LEFT OUTER JOIN auth AS auth_1 ON auth_1.user_id = users.user_id +2024-12-06 23:39:19 - [generated in 0.00019s] () +2024-12-06 23:39:19 - ROLLBACK +2024-12-06 23:39:19 - BEGIN (implicit) +2024-12-06 23:39:19 - SELECT dogs.dog_id AS dogs_dog_id, dogs.breed AS dogs_breed, dogs.characteristics AS dogs_characteristics, dogs.behavior AS dogs_behavior, dogs.care_info AS dogs_care_info, dogs.admin_comments AS dogs_admin_comments +FROM dogs +2024-12-06 23:39:19 - [generated in 0.00016s] () +2024-12-06 23:39:19 - ROLLBACK +2024-12-06 23:39:19 - BEGIN (implicit) +2024-12-06 23:39:19 - SELECT questions.question_id AS questions_question_id, questions.dog_id AS questions_dog_id, questions.question_text AS questions_question_text, questions.image_url AS questions_image_url, questions.helpful_info AS questions_helpful_info, questions.incorrect_attempts AS questions_incorrect_attempts +FROM questions +2024-12-06 23:39:19 - [generated in 0.00014s] () +2024-12-06 23:39:19 - ROLLBACK diff --git a/logs_export.csv b/logs_export.csv deleted file mode 100644 index 665d953..0000000 --- a/logs_export.csv +++ /dev/null @@ -1,4 +0,0 @@ -Дата,Тип,Сообщение -2024-11-21,INFO,Система запущена -2024-11-21,ERROR,Ошибка подключения к базе данных -2024-11-21,WARNING,Слабый пароль администратора diff --git a/requirements b/requirements deleted file mode 100644 index fb6d71e..0000000 --- a/requirements +++ /dev/null @@ -1,3 +0,0 @@ -sqlalchemy -tk -matplotlib>=3.7.0 diff --git a/src/ui/admin_ui.py b/src/ui/admin_ui.py index 627643b..ae3ea1b 100644 --- a/src/ui/admin_ui.py +++ b/src/ui/admin_ui.py @@ -8,7 +8,8 @@ from database.db_session import get_session from database.models import Dogs, Questions, Users from src.admin_functions import admin_logging, statistics from src.utils import clear_frame, feature_in_development_admin # Импортируем общую функцию для очистки фрейма -from database.db_events import check_user, get_all_users, get_all_questions, get_all_dogs +from database.db_events import check_user, get_all_users, get_all_questions, get_all_dogs, delete_dog, update_dog_info, \ + add_question_to_db, add_user_to_db, add_dog_to_db, delete_question, delete_user # Конфигурация цветов из config.py BACKGROUND_COLOR = "#403d49" @@ -99,19 +100,12 @@ class AdminApp: ("Просмотр таблиц", self.view_tables), ]), ("Управление игровым контентом", [ - ("Создание и настройка уровней", feature_in_development_admin), - ("Настройка параметров собаки", feature_in_development_admin), + ("Создание и настройка уровней", lambda: feature_in_development_admin(self.main_frame)), + ("Настройка параметров собаки", lambda: feature_in_development_admin(self.main_frame)), ]), ("Управление интерфейсом пользователя", [ - ("Добавление подсказок в интерфейс", feature_in_development_admin), - ]), - ("Работа с базой знаний", [ - ("Добавление информации", feature_in_development_admin), - ("Редактирование записей", feature_in_development_admin), - ("Удаление записей", feature_in_development_admin), - ("Просмотр базы знаний", feature_in_development_admin), - ("Генерация вопросов", feature_in_development_admin), - ]), + ("Добавление подсказок в интерфейс", lambda: feature_in_development_admin(self.main_frame)), + ]) ] # Определяем максимальную ширину текста для настройки ширины меню и кнопок @@ -280,231 +274,477 @@ class AdminApp: def manage_users(self): """Управление пользователями.""" clear_frame(self.main_frame) - tk.Label(self.main_frame, text="Редактирование пользователей", font=("Comic Sans MS", 16)).pack() - users = get_all_users() # Получаем пользователей + tk.Label(self.main_frame, text="Управление пользователями", font=("Comic Sans MS", 16), bg=BACKGROUND_COLOR, + fg=TEXT_COLOR).pack() + + # Кнопка добавления нового пользователя + tk.Button( + self.main_frame, + text="Добавить пользователя", + command=self.open_add_user_window, + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + # Кнопка обновления списка + tk.Button( + self.main_frame, + text="Обновить список", + command=self.manage_users, # Перезагрузка данных + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + users = get_all_users() # Получение списка пользователей + if not users: tk.Label(self.main_frame, text="Нет пользователей в базе данных.", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack() return - table = ttk.Treeview(self.main_frame, columns=("ID", "Логин", "Имя"), show="headings") + # Отображение данных в таблице + table = ttk.Treeview(self.main_frame, columns=("ID", "Логин", "Имя пользователя", "Уровень"), show="headings") table.heading("ID", text="ID") table.heading("Логин", text="Логин") - table.heading("Имя", text="Имя") - table.pack(fill="both", expand=True) + table.heading("Имя пользователя", text="Имя пользователя") + table.heading("Уровень", text="Уровень") + table.pack(fill="both", expand=True, pady=10) + # Очистка старых записей из таблицы + for row in table.get_children(): + table.delete(row) + + # Добавление данных из базы for user in users: - table.insert("", "end", values=(user.user_id, user.auth.login, user.username)) + table.insert("", "end", values=(user.user_id, user.auth.login, user.username, user.level)) + + def delete_selected(): + selected_item = table.selection() + if not selected_item: + messagebox.showwarning("Удаление", "Выберите пользователя для удаления.") + return + user_id = table.item(selected_item, "values")[0] + success, message = delete_user(user_id) + if success: + messagebox.showinfo("Успех", message) + self.manage_users() # Обновление списка + else: + messagebox.showerror("Ошибка", message) + + # Кнопка удаления + tk.Button( + self.main_frame, + text="Удалить выбранного пользователя", + command=delete_selected, + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) def manage_questions(self): """Управление вопросами.""" clear_frame(self.main_frame) - tk.Label(self.main_frame, text="Управление вопросами", font=("Comic Sans MS", 16)).pack() - questions = get_all_questions() # Получаем вопросы + tk.Label(self.main_frame, text="Управление вопросами", font=("Comic Sans MS", 16), bg=BACKGROUND_COLOR, + fg=TEXT_COLOR).pack() + + # Кнопка добавления нового вопроса + tk.Button( + self.main_frame, + text="Добавить вопрос", + command=self.open_add_question_window, + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + # Кнопка обновления списка + tk.Button( + self.main_frame, + text="Обновить список", + command=self.manage_questions, # Перезагрузка данных + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + questions = get_all_questions() # Получение списка вопросов + if not questions: tk.Label(self.main_frame, text="Нет вопросов в базе данных.", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack() return - table = ttk.Treeview(self.main_frame, columns=("ID", "Вопрос", "Ответ"), show="headings") + # Отображение данных в таблице + table = ttk.Treeview(self.main_frame, columns=("ID", "Вопрос", "Полезная информация"), show="headings") table.heading("ID", text="ID") table.heading("Вопрос", text="Вопрос") - table.heading("Ответ", text="Ответ") - table.pack(fill="both", expand=True) + table.heading("Полезная информация", text="Полезная информация") + table.pack(fill="both", expand=True, pady=10) + + # Очистка таблицы перед заполнением новыми данными + for row in table.get_children(): + table.delete(row) for question in questions: - table.insert("", "end", values=( - question.question_id, question.question_text, question.helpful_info)) # Заполняем таблицу данными + table.insert("", "end", values=(question.question_id, question.question_text, question.helpful_info)) + + def delete_selected(): + selected_item = table.selection() + if not selected_item: + messagebox.showwarning("Удаление", "Выберите вопрос для удаления.") + return + + question_id = table.item(selected_item, "values")[0] # Получение ID вопроса + success, message = delete_question(question_id) # Вызов метода для удаления вопроса + if success: + messagebox.showinfo("Успех", message) + self.manage_questions() # Обновление списка вопросов + else: + messagebox.showerror("Ошибка", message) + + # Кнопка удаления + tk.Button( + self.main_frame, + text="Удалить выбранный вопрос", + command=delete_selected, + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) def manage_dogs(self): - """Управление собаками.""" + """Управление породами собак.""" clear_frame(self.main_frame) - tk.Label(self.main_frame, text="Управление собаками", font=("Comic Sans MS", 16)).pack() - dogs = get_all_dogs() # Получаем список собак + # Заголовок + tk.Label(self.main_frame, text="Управление породами собак", font=("Comic Sans MS", 16), bg=BACKGROUND_COLOR, + fg=TEXT_COLOR).pack() + + # Функция удаления выбранной породы + def delete_selected(): + selected_item = table.selection() + if not selected_item: + messagebox.showwarning("Удаление", "Выберите породу для удаления.") + return + dog_id = table.item(selected_item, "values")[0] # ID породы + success, message = delete_dog(dog_id) + if success: + messagebox.showinfo("Успех", message) + self.manage_dogs() # Обновление списка + else: + messagebox.showerror("Ошибка", message) + + # Функция редактирования выбранной породы + def edit_selected(): + selected_item = table.selection() + if not selected_item: + messagebox.showwarning("Редактирование", "Выберите породу для редактирования.") + return + + # Получение данных выбранной породы + dog_data = table.item(selected_item, "values") + + # Пример dog_data: ('dog_id', 'breed', 'characteristics', 'behavior', 'care_info', 'admin_comments') + + if len(dog_data) < 6: + messagebox.showwarning("Ошибка", "Недостаточно данных для редактирования.") + return + + dog_id = dog_data[0] + breed = dog_data[1] + characteristics = dog_data[2] + behavior = dog_data[3] + care_info = dog_data[4] # Дополнительная информация о породе + admin_comments = dog_data[5] # Комментарии администратора + + # Вызов функции открытия окна редактирования породы, передавая все необходимые данные + self.open_edit_dog_window(dog_id, breed, characteristics, behavior, care_info, admin_comments) + + # Кнопка добавления новой породы + tk.Button( + self.main_frame, + text="Добавить породу", + command=self.open_add_dog_window, + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + # Кнопка обновления списка + tk.Button( + self.main_frame, + text="Обновить список", + command=self.manage_dogs, # Повторный вызов для обновления данных + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + # Кнопка удаления + tk.Button( + self.main_frame, + text="Удалить выбранную породу", + command=delete_selected, + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + # Кнопка редактирования + tk.Button( + self.main_frame, + text="Редактировать выбранную породу", + command=edit_selected, + bg=BUTTON_COLOR, + fg=TEXT_COLOR + ).pack(pady=10) + + # Получение данных из базы + dogs = get_all_dogs() + if not dogs: - tk.Label(self.main_frame, text="Нет собак в базе данных.", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack() + tk.Label(self.main_frame, text="Нет записей о породах в базе данных.", bg=BACKGROUND_COLOR, + fg=TEXT_COLOR).pack() return - table = ttk.Treeview(self.main_frame, columns=("ID", "Порода", "Характеристики"), show="headings") + # Создание таблицы + table = ttk.Treeview(self.main_frame, columns=( + "ID", "Порода", "Характеристики", "Поведение", "Информация по уходу", "Комментарии"), show="headings") table.heading("ID", text="ID") table.heading("Порода", text="Порода") table.heading("Характеристики", text="Характеристики") - table.pack(fill="both", expand=True) + table.heading("Поведение", text="Поведение") + table.heading("Информация по уходу", text="Информация по уходу") + table.heading("Комментарии", text="Комментарии") + table.pack(fill="both", expand=True, pady=10) + # Заполнение таблицы данными о породах for dog in dogs: - table.insert("", "end", values=(dog.dog_id, dog.breed, dog.characteristics)) # Заполняем таблицу данными + table.insert("", "end", values=( + dog.dog_id, dog.breed, dog.characteristics, dog.behavior, dog.care_info, dog.admin_comments)) + + def open_edit_dog_window(self, dog_id, breed, characteristics, behavior, care_info, admin_comments): + """Открыть окно редактирования данных о породе собак.""" + edit_dog_window = tk.Toplevel(self.root) + edit_dog_window.title("Редактировать данные породы") + edit_dog_window.geometry("500x400") + edit_dog_window.configure(bg=BACKGROUND_COLOR) + + fields = { + "Порода": (breed, tk.Entry(edit_dog_window, font=("Comic Sans MS", 12))), + "Характеристики": (characteristics, tk.Entry(edit_dog_window, font=("Comic Sans MS", 12))), + "Поведение": (behavior, tk.Entry(edit_dog_window, font=("Comic Sans MS", 12))), + "Уход": (care_info, tk.Entry(edit_dog_window, font=("Comic Sans MS", 12))), + "Комментарии администратора": (admin_comments, tk.Entry(edit_dog_window, font=("Comic Sans MS", 12))), + } + + for idx, (label_text, (value, entry)) in enumerate(fields.items()): + tk.Label(edit_dog_window, text=label_text, bg=BACKGROUND_COLOR, fg=TEXT_COLOR, + font=("Comic Sans MS", 12)).grid(row=idx, column=0, pady=10, padx=10) + entry.insert(0, value) + entry.grid(row=idx, column=1, pady=10, padx=10) + + def save_changes(): + updated_data = {key: entry.get() for key, (_, entry) in fields.items()} + success, message = update_dog_info(dog_id, updated_data["Порода"], updated_data["Характеристики"]) + if success: + messagebox.showinfo("Успех", message) + edit_dog_window.destroy() + self.manage_dogs() # Обновление списка пород + else: + messagebox.showerror("Ошибка", message) + + tk.Button(edit_dog_window, text="Сохранить", command=save_changes, bg=BUTTON_COLOR, fg=TEXT_COLOR).grid( + row=len(fields), column=0, pady=20) + tk.Button(edit_dog_window, text="Отмена", command=edit_dog_window.destroy, bg=BUTTON_COLOR, fg=TEXT_COLOR).grid( + row=len(fields), column=1, pady=20) def view_tables(self): - """Просмотр таблиц.""" - clear_frame(self.main_frame) # Очищаем старое содержимое - self.manage_users() # Отображаем пользователей - self.manage_questions() # Отображаем вопросы - self.manage_dogs() # Отображаем собак + """Просмотр всех таблиц.""" + clear_frame(self.main_frame) + + tk.Label(self.main_frame, text="Просмотр всех таблиц", font=("Comic Sans MS", 16), bg=BACKGROUND_COLOR, + fg=TEXT_COLOR).pack() + + # Создаём вкладки для отображения таблиц + tab_control = ttk.Notebook(self.main_frame) + + # Таблица пользователей + users_frame = ttk.Frame(tab_control) + tab_control.add(users_frame, text="Пользователи") + users_data = get_all_users() + if users_data: + self.create_table_view(users_frame, users_data, ["user_id", "login", "username", "level"]) + else: + tk.Label(users_frame, text="Нет данных о пользователях.", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack() + + # Таблица собак + dogs_frame = ttk.Frame(tab_control) + tab_control.add(dogs_frame, text="Породы собак") + dogs_data = get_all_dogs() + if dogs_data: + self.create_table_view(dogs_frame, dogs_data, ["dog_id", "breed", "characteristics", "behavior"]) + else: + tk.Label(dogs_frame, text="Нет данных о породах собак.", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack() + + # Таблица вопросов + questions_frame = ttk.Frame(tab_control) + tab_control.add(questions_frame, text="Вопросы") + questions_data = get_all_questions() + if questions_data: + self.create_table_view(questions_frame, questions_data, ["question_id", "question_text", "helpful_info"]) + else: + tk.Label(questions_frame, text="Нет данных о вопросах.", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack() + + tab_control.pack(expand=True, fill="both") + + def create_table_view(self, frame, data, columns): + """Создание и отображение таблицы на основе данных и столбцов.""" + # Создаём таблицу + table = ttk.Treeview(frame, columns=columns, show="headings") + + # Заголовки таблицы + for col in columns: + table.heading(col, text=col) + table.column(col, anchor="center") # Выравнивание заголовков по центру + + # Заполнение таблицы данными + for row in data: + if isinstance(row, dict): # Если данные представлены в виде словаря + values = [row.get(col, "") for col in columns] + elif hasattr(row, "__dict__"): # Если данные — это объект SQLAlchemy + values = [getattr(row, col, "") for col in columns] + else: + values = row if isinstance(row, (list, tuple)) else [] + + table.insert("", "end", values=values) + + # Устанавливаем таблицу в интерфейс + table.pack(fill="both", expand=True, pady=10) + + def open_add_dog_window(self): + """Открыть окно для добавления новой собаки.""" + add_dog_window = tk.Toplevel(self.root) + add_dog_window.title("Добавить новую собаку") + add_dog_window.geometry("400x300") + add_dog_window.configure(bg=BACKGROUND_COLOR) + + tk.Label(add_dog_window, text="Порода", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + breed_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) + breed_entry.pack(pady=5) + + tk.Label(add_dog_window, text="Характеристики", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + characteristics_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) + characteristics_entry.pack(pady=5) + + tk.Label(add_dog_window, text="Поведение", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + behavior_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) + behavior_entry.pack(pady=5) + + tk.Label(add_dog_window, text="Уход", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + care_info_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) + care_info_entry.pack(pady=5) + + tk.Label(add_dog_window, text="Комментарии администратора", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + admin_comments_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) + admin_comments_entry.pack(pady=5) + + def save_dog(): + dog_data = { + 'breed': breed_entry.get(), + 'characteristics': characteristics_entry.get(), + 'behavior': behavior_entry.get(), + 'care_info': care_info_entry.get(), + 'admin_comments': admin_comments_entry.get() + } + add_dog_to_db(dog_data) + add_dog_window.destroy() + + def cancel_add(): + add_dog_window.destroy() + + save_button = tk.Button(add_dog_window, text="Сохранить", command=save_dog, bg=BUTTON_COLOR, fg=TEXT_COLOR) + save_button.pack(pady=20) + + cancel_button = tk.Button(add_dog_window, text="Отменить", command=cancel_add, bg=BUTTON_COLOR, fg=TEXT_COLOR) + cancel_button.pack(pady=10) -def open_add_user_window(self): - """Открыть окно для добавления нового пользователя.""" - add_user_window = tk.Toplevel(self.root) - add_user_window.title("Добавить нового пользователя") - add_user_window.geometry("400x300") - add_user_window.configure(bg=BACKGROUND_COLOR) + def open_add_user_window(self): + """Открыть окно для добавления нового пользователя.""" + add_user_window = tk.Toplevel(self.root) + add_user_window.title("Добавить нового пользователя") + add_user_window.geometry("400x300") + add_user_window.configure(bg=BACKGROUND_COLOR) - tk.Label(add_user_window, text="Логин", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - login_entry = tk.Entry(add_user_window, font=("Comic Sans MS", 12)) - login_entry.pack(pady=5) + tk.Label(add_user_window, text="Логин", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + login_entry = tk.Entry(add_user_window, font=("Comic Sans MS", 12)) + login_entry.pack(pady=5) - tk.Label(add_user_window, text="Пароль", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - password_entry = tk.Entry(add_user_window, font=("Comic Sans MS", 12), show="*") - password_entry.pack(pady=5) + tk.Label(add_user_window, text="Пароль", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + password_entry = tk.Entry(add_user_window, font=("Comic Sans MS", 12), show="*") + password_entry.pack(pady=5) - tk.Label(add_user_window, text="Имя пользователя", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - username_entry = tk.Entry(add_user_window, font=("Comic Sans MS", 12)) - username_entry.pack(pady=5) + tk.Label(add_user_window, text="Имя пользователя", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + username_entry = tk.Entry(add_user_window, font=("Comic Sans MS", 12)) + username_entry.pack(pady=5) - def save_user(): - user_data = { - 'login': login_entry.get(), - 'password': password_entry.get(), - 'username': username_entry.get() - } - add_user_to_db(user_data) - add_user_window.destroy() + def save_user(): + user_data = { + 'login': login_entry.get(), + 'password': password_entry.get(), + 'username': username_entry.get(), + } + try: + add_user_to_db(user_data) + messagebox.showinfo("Успех", "Пользователь успешно добавлен.") + add_user_window.destroy() + self.manage_users() # Обновить список пользователей + except Exception as e: + messagebox.showerror("Ошибка", f"Не удалось добавить пользователя: {e}") - def cancel_add(): - add_user_window.destroy() + def cancel_add(): + add_user_window.destroy() - save_button = tk.Button(add_user_window, text="Сохранить", command=save_user, bg=BUTTON_COLOR, fg=TEXT_COLOR) - save_button.pack(pady=20) + save_button = tk.Button(add_user_window, text="Сохранить", command=save_user, bg=BUTTON_COLOR, fg=TEXT_COLOR) + save_button.pack(pady=20) - cancel_button = tk.Button(add_user_window, text="Отменить", command=cancel_add, bg=BUTTON_COLOR, fg=TEXT_COLOR) - cancel_button.pack(pady=10) + cancel_button = tk.Button(add_user_window, text="Отменить", command=cancel_add, bg=BUTTON_COLOR, fg=TEXT_COLOR) + cancel_button.pack(pady=10) -def open_add_question_window(self): - """Открыть окно для добавления нового вопроса.""" - add_question_window = tk.Toplevel(self.root) - add_question_window.title("Добавить новый вопрос") - add_question_window.geometry("400x300") - add_question_window.configure(bg=BACKGROUND_COLOR) + def open_add_question_window(self): + """Открыть окно для добавления нового вопроса.""" + add_question_window = tk.Toplevel(self.root) + add_question_window.title("Добавить новый вопрос") + add_question_window.geometry("400x300") + add_question_window.configure(bg=BACKGROUND_COLOR) - tk.Label(add_question_window, text="ID собаки", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - dog_id_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) - dog_id_entry.pack(pady=5) + tk.Label(add_question_window, text="ID собаки", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + dog_id_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) + dog_id_entry.pack(pady=5) - tk.Label(add_question_window, text="Вопрос", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - question_text_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) - question_text_entry.pack(pady=5) + tk.Label(add_question_window, text="Вопрос", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + question_text_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) + question_text_entry.pack(pady=5) - tk.Label(add_question_window, text="Изображение URL", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - image_url_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) - image_url_entry.pack(pady=5) + tk.Label(add_question_window, text="Изображение URL", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + image_url_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) + image_url_entry.pack(pady=5) - tk.Label(add_question_window, text="Полезная информация", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - helpful_info_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) - helpful_info_entry.pack(pady=5) + tk.Label(add_question_window, text="Полезная информация", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) + helpful_info_entry = tk.Entry(add_question_window, font=("Comic Sans MS", 12)) + helpful_info_entry.pack(pady=5) - def save_question(): - question_data = { - 'dog_id': int(dog_id_entry.get()), - 'question_text': question_text_entry.get(), - 'image_url': image_url_entry.get(), - 'helpful_info': helpful_info_entry.get() - } - add_question_to_db(question_data) - add_question_window.destroy() + def save_question(): + question_data = { + 'dog_id': int(dog_id_entry.get()), + 'question_text': question_text_entry.get(), + 'image_url': image_url_entry.get(), + 'helpful_info': helpful_info_entry.get() + } + add_question_to_db(question_data) + add_question_window.destroy() - def cancel_add(): - add_question_window.destroy() + def cancel_add(): + add_question_window.destroy() - save_button = tk.Button(add_question_window, text="Сохранить", command=save_question, bg=BUTTON_COLOR, fg=TEXT_COLOR) - save_button.pack(pady=20) + save_button = tk.Button(add_question_window, text="Сохранить", command=save_question, bg=BUTTON_COLOR, fg=TEXT_COLOR) + save_button.pack(pady=20) - cancel_button = tk.Button(add_question_window, text="Отменить", command=cancel_add, bg=BUTTON_COLOR, fg=TEXT_COLOR) - cancel_button.pack(pady=10) + cancel_button = tk.Button(add_question_window, text="Отменить", command=cancel_add, bg=BUTTON_COLOR, fg=TEXT_COLOR) + cancel_button.pack(pady=10) -def open_add_dog_window(self): - """Открыть окно для добавления новой собаки.""" - add_dog_window = tk.Toplevel(self.root) - add_dog_window.title("Добавить новую собаку") - add_dog_window.geometry("400x300") - add_dog_window.configure(bg=BACKGROUND_COLOR) - - tk.Label(add_dog_window, text="Порода", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - breed_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) - breed_entry.pack(pady=5) - - tk.Label(add_dog_window, text="Характеристики", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - characteristics_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) - characteristics_entry.pack(pady=5) - - tk.Label(add_dog_window, text="Поведение", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - behavior_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) - behavior_entry.pack(pady=5) - - tk.Label(add_dog_window, text="Уход", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - care_info_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) - care_info_entry.pack(pady=5) - - tk.Label(add_dog_window, text="Комментарии администратора", bg=BACKGROUND_COLOR, fg=TEXT_COLOR).pack(pady=10) - admin_comments_entry = tk.Entry(add_dog_window, font=("Comic Sans MS", 12)) - admin_comments_entry.pack(pady=5) - - def save_dog(): - dog_data = { - 'breed': breed_entry.get(), - 'characteristics': characteristics_entry.get(), - 'behavior': behavior_entry.get(), - 'care_info': care_info_entry.get(), - 'admin_comments': admin_comments_entry.get() - } - add_dog_to_db(dog_data) - add_dog_window.destroy() - - def cancel_add(): - add_dog_window.destroy() - - save_button = tk.Button(add_dog_window, text="Сохранить", command=save_dog, bg=BUTTON_COLOR, fg=TEXT_COLOR) - save_button.pack(pady=20) - - cancel_button = tk.Button(add_dog_window, text="Отменить", command=cancel_add, bg=BUTTON_COLOR, fg=TEXT_COLOR) - cancel_button.pack(pady=10) - -def add_user_to_db(user_data): - session = get_session() - try: - new_user = Users(**user_data) - session.add(new_user) - session.commit() - print(f"Пользователь {user_data['username']} успешно добавлен.") - except SQLAlchemyError as e: - print(f"Ошибка при добавлении пользователя: {e}") - session.rollback() - finally: - session.close() - -def add_question_to_db(question_data): - session = get_session() - try: - new_question = Questions(**question_data) - session.add(new_question) - session.commit() - print(f"Вопрос успешно добавлен: {question_data['question_text']}") - except SQLAlchemyError as e: - print(f"Ошибка при добавлении вопроса: {e}") - session.rollback() - finally: - session.close() - -def add_dog_to_db(dog_data): - session = get_session() - try: - new_dog = Dogs(**dog_data) - session.add(new_dog) - session.commit() - print(f"Собака успешно добавлена: {dog_data['breed']}") - except SQLAlchemyError as e: - print(f"Ошибка при добавлении собаки: {e}") - session.rollback() - finally: - session.close() \ No newline at end of file diff --git a/src/user_functions/game_functions.py b/src/user_functions/game_functions.py deleted file mode 100644 index ad3f4cb..0000000 --- a/src/user_functions/game_functions.py +++ /dev/null @@ -1,43 +0,0 @@ -import logging -import time -import tkinter as tk -from src.utils import clear_frame -from database.db_events import save_progress - -def handle_checkpoint(obstacle, current_score, root): - """ - Обрабатывает чек-поинт (косточку). - obstacle - данные о текущем препятствии - current_score - текущий счёт - root - корневой элемент - """ - # Пример вопроса - question = "Как ухаживать за собакой?" - correct_answer = "Кормить и гулять" - - # Окно для вопроса - question_window = tk.Toplevel(root) - question_window.title("Вопрос") - - question_label = tk.Label(question_window, text=question, font=("Comic Sans MS", 14)) - question_label.pack(pady=10) - - answer_var = tk.StringVar() - answer_entry = tk.Entry(question_window, textvariable=answer_var, font=("Comic Sans MS", 14)) - answer_entry.pack(pady=10) - - def submit_answer(): - nonlocal current_score # Используем nonlocal для изменения current_score в замыканиях - answer = answer_var.get().strip().lower() - if answer == correct_answer.lower(): - current_score += 1 # За правильный ответ добавляется 1 косточка - else: - current_score -= 1 # Штраф за неправильный ответ - - question_window.destroy() - return current_score # Возвращаем обновленный счёт - - submit_button = tk.Button(question_window, text="Ответить", command=submit_answer, font=("Comic Sans MS", 14)) - submit_button.pack(pady=10) - - return current_score diff --git a/src/user_functions/map_generator.py b/src/user_functions/map_generator.py deleted file mode 100644 index a5e657c..0000000 --- a/src/user_functions/map_generator.py +++ /dev/null @@ -1,13 +0,0 @@ -import random - -def generate_map(level): - """Генерация карты уровня.""" - num_obstacles = random.randint(3, 6) - map_data = [] - for _ in range(num_obstacles): - map_data.append({ - "type": "question", - "difficulty": level, - "position": (random.randint(0, 19), random.randint(0, 10)) # Позиция на сетке - }) - return map_data