from db.database import conn, cursor


def save_user(user_id, first_name=None, username=None):
    cursor.execute("""
        INSERT INTO users (user_id, first_name, username)
        VALUES (?, ?, ?)
        ON CONFLICT(user_id) DO UPDATE SET
            first_name  = COALESCE(excluded.first_name, first_name),
            username    = COALESCE(excluded.username, username),
            last_active = datetime('now', 'localtime')
    """, (user_id, first_name, username))
    conn.commit()


def get_user_by_id(user_id):
    cursor.execute("SELECT * FROM users WHERE user_id = ?", (user_id,))
    row = cursor.fetchone()
    return dict(row) if row else None


def get_all_users():
    cursor.execute("SELECT user_id FROM users")
    return [r[0] for r in cursor.fetchall()]
