from datetime import datetime
import uuid
import bcrypt
from fetch_data import get_mongo_client

def create_test_user():
    client = get_mongo_client()
    db = client['character_test']
    clients_collection = db['clients']
    
    # Generate a unique client_id with a TEST_ prefix
    client_id = f"TEST_{str(uuid.uuid4())[:12]}"
    
    # Create a test password and hash it
    test_password = "test123"
    hashed_password = bcrypt.hashpw(test_password.encode('utf-8'), bcrypt.gensalt())
    
    test_user = {
        "client_id": client_id,
        "username": "Test User",
        "email": "test@example.com",
        "password": hashed_password,
        "created_at": datetime.utcnow(),
        "is_test_account": True,
        "token_used": 0
    }
    
    try:
        result = clients_collection.insert_one(test_user)
        if result.inserted_id:
            print(f"Test user created successfully!")
            print(f"Use these credentials for testing:")
            print(f"Email: {test_user['email']}")
            print(f"Password: {test_password}")
            print(f"Client ID: {client_id}")
            return client_id
        else:
            print("Failed to create test user")
            return None
    except Exception as e:
        print(f"Error creating test user: {str(e)}")
        return None

if __name__ == "__main__":
    create_test_user() 