import os
import sqlite3
import bcrypt

# Configuration
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DATABASE_PATH = os.path.join(BASE_DIR, 'theialogin.db')

def get_db():
    conn = sqlite3.connect(DATABASE_PATH)
    conn.row_factory = sqlite3.Row
    return conn

def create_admin_user(username, password):
    db = get_db()
    cursor = db.cursor()

    # Hash the password
    password_hash = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')

    try:
        cursor.execute('INSERT INTO users (username, password_hash, is_admin) VALUES (?, ?, ?)', (username, password_hash, True))
        db.commit()
        print(f"Admin user {username} created successfully.")
    except sqlite3.IntegrityError:
        print(f"Username {username} is already taken.")
    except sqlite3.Error as e:
        print(f"An error occurred: {e}")
    finally:
        db.close()

if __name__ == '__main__':
    # Take user input for creating admin user
    username = input("Enter admin username: ")
    password = input("Enter admin password: ")
    
    create_admin_user(username, password)
