# 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, user: 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, user)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?)
        ''', (new_user_id, tg_id, username, first_name, last_name, role, status, user))

        # Добавляем запись в user_messages
        cursor.execute('''
        INSERT INTO user_messages (user_id)
        VALUES (?)
        ''', (new_user_id,))

        db.commit()
