import mysql.connector
from passlib.hash import bcrypt
import os
from dotenv import load_dotenv

load_dotenv()

DB_CONFIG = {
    'host': os.getenv("HOST"),
    'user': os.getenv("USER"),
    'password': os.getenv("PASSWORD"),
    'database': os.getenv("DATABASE")
}

def get_connection():
    return mysql.connector.connect(**DB_CONFIG)

def create_user(username: str, password: str):
    conn = get_connection()
    cursor = conn.cursor()

    # Check if user already exists
    cursor.execute("SELECT id FROM users WHERE username = %s", (username,))
    if cursor.fetchone():
        print(f"❌ User '{username}' already exists.")
        cursor.close()
        conn.close()
        return

    hashed_pw = bcrypt.hash(password)
    cursor.execute("INSERT INTO users (username, password_hash) VALUES (%s, %s)", (username, hashed_pw))
    conn.commit()
    cursor.close()
    conn.close()
    print(f"✅ User '{username}' created successfully.")

if __name__ == "__main__":
    import getpass

    username = input("Enter new username: ")
    password = getpass.getpass("Enter password: ")
    confirm_password = getpass.getpass("Confirm password: ")

    if password != confirm_password:
        print("❌ Passwords do not match.")
    else:
        create_user(username, password)
