from app.database import SessionLocal from app import models from app.auth import get_password_hash def create_admin(username, email, password): db = SessionLocal() try: # Check if user exists existing_user = db.query(models.User).filter(models.User.username == username).first() if existing_user: print(f"User {username} already exists.") return existing_email = db.query(models.User).filter(models.User.email == email).first() if existing_email: print(f"Email {email} already registered.") return # Create admin user hashed_password = get_password_hash(password) db_user = models.User( username=username, email=email, hashed_password=hashed_password, role=models.UserRole.ADMIN ) db.add(db_user) db.commit() db.refresh(db_user) print(f"Admin user '{username}' created successfully.") except Exception as e: print(f"Error creating admin: {e}") finally: db.close() if __name__ == "__main__": import sys if len(sys.argv) != 4: print("Usage: python create_admin.py ") else: create_admin(sys.argv[1], sys.argv[2], sys.argv[3])