Загрузка данных


import aiosqlite

DB_NAME = "nether_club.db"

async def init_db():
    """Инициализация базы данных и создание таблиц согласно ТЗ"""
    async with aiosqlite.connect(DB_NAME) as db:
        # Таблица пользователей (с ролями: user, manager, admin)
        await db.execute("""
            CREATE TABLE IF NOT EXISTS users (
                user_id INTEGER PRIMARY KEY,
                username TEXT,
                role TEXT DEFAULT 'user'
            )
        """)
        
        # Таблица заказов/бронирований (связана внешним ключом с users)
        await db.execute("""
            CREATE TABLE IF NOT EXISTS orders (
                order_id INTEGER PRIMARY KEY AUTOINCREMENT,
                user_id INTEGER,
                zone TEXT,
                pc_name TEXT,
                hours INTEGER,
                total_price INTEGER,
                status TEXT DEFAULT 'Активна',
                FOREIGN KEY (user_id) REFERENCES users (user_id) ON DELETE CASCADE
            )
        """)
        await db.commit()

async def add_user(user_id: int, username: str):
    """Добавление пользователя в БД, если его там еще нет"""
    async with aiosqlite.connect(DB_NAME) as db:
        await db.execute("""
            INSERT OR IGNORE INTO users (user_id, username, role) 
            VALUES (?, ?, 'user')
        """, (user_id, username))
        await db.commit()

async def get_user_role(user_id: int) -> str:
    """Получение роли пользователя"""
    async with aiosqlite.connect(DB_NAME) as db:
        async with db.execute("SELECT role FROM users WHERE user_id = ?", (user_id,)) as cursor:
            row = await cursor.fetchone()
            return row[0] if row else 'user'