diff --git a/SQLite3/bd_func/bd_add_user.py b/SQLite3/bd_func/bd_add_user.py new file mode 100644 index 0000000..1d97f1c --- /dev/null +++ b/SQLite3/bd_func/bd_add_user.py @@ -0,0 +1,39 @@ +# SQLite3/bd_func/bd_add_user.py +# Добавление пользователя в базу данных bd|user + +import sqlite3 +from ProjectsFiles import BotVar + +# Настройка экспорта в модули +__all__ = ("add_user",) + + +# Функция добавления пользователя с последовательным user_id +async def add_user(tg_id: int, username: str, first_name: str, + last_name: str, role: str, status: str, bd_name: str = BotVar.bd_names): + with sqlite3.connect(bd_name) as db: + cursor = db.cursor() + + # Проверяем, существует ли пользователь с таким tg_id + cursor.execute("SELECT user_id FROM users WHERE tg_id = ?", (tg_id,)) + if cursor.fetchone(): + return # Пользователь уже существует, ничего не добавляем + + # Находим максимальный user_id + cursor.execute("SELECT MAX(user_id) FROM users") + max_id = cursor.fetchone()[0] + new_user_id = 1 if max_id is None else max_id + 1 + + # Добавляем нового пользователя + cursor.execute(''' + INSERT INTO users (user_id, tg_id, username, first_name, last_name, role, status) + VALUES (?, ?, ?, ?, ?, ?, ?) + ''', (new_user_id, tg_id, username, first_name, last_name, role, status)) + + # Добавляем запись в user_messages + cursor.execute(''' + INSERT INTO user_messages (user_id) + VALUES (?) + ''', (new_user_id,)) + + db.commit()