""" Create an admin user for testing. Run this script to add an admin account to your database. """ from database import SessionLocal from models import User, UserStatus, UserRole from auth import get_password_hash from datetime import datetime, timezone def create_admin(): """Create an admin user""" db = SessionLocal() try: # Check if admin already exists existing_admin = db.query(User).filter( User.email == "admin@loaf.org" ).first() if existing_admin: print(f"⚠️ Admin user already exists: {existing_admin.email}") print(f" Role: {existing_admin.role.value}") print(f" Status: {existing_admin.status.value}") # Update to admin role if not already if existing_admin.role != UserRole.admin: existing_admin.role = UserRole.admin existing_admin.status = UserStatus.active existing_admin.email_verified = True db.commit() print("✅ Updated existing user to admin role") return print("Creating admin user...") # Create admin user admin_user = User( email="admin@loaf.org", password_hash=get_password_hash("admin123"), # Change this password! first_name="Admin", last_name="User", phone="555-0001", address="123 Admin Street", city="Admin City", state="CA", zipcode="90001", date_of_birth=datetime(1990, 1, 1), status=UserStatus.active, role=UserRole.admin, email_verified=True, newsletter_subscribed=False ) db.add(admin_user) db.commit() db.refresh(admin_user) print("✅ Admin user created successfully!") print(f" Email: admin@loaf.org") print(f" Password: admin123") print(f" Role: {admin_user.role.value}") print(f" User ID: {admin_user.id}") print("\n⚠️ IMPORTANT: Change the password after first login!") except Exception as e: print(f"❌ Error creating admin user: {e}") db.rollback() finally: db.close() if __name__ == "__main__": create_admin()