#!/usr/bin/env python3 """Script to create an admin user for the TechZone application""" import asyncio import sys from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.orm import sessionmaker import bcrypt from datetime import datetime, timezone # Import from your app sys.path.append('/media/pts/Website/PromptTech_Solution_Site/backend') from models import User, UserRole from database import DATABASE_URL async def create_admin(): # Create async engine engine = create_async_engine(DATABASE_URL, echo=True) async_session = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False) async with async_session() as session: # Admin credentials email = "admin@prompttech.com" password = "admin123" name = "Admin User" # Hash password hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8') # Create admin user admin_user = User( email=email, name=name, password=hashed_password, role=UserRole.ADMIN, created_at=datetime.now(timezone.utc) ) session.add(admin_user) await session.commit() await session.refresh(admin_user) print(f"\nāœ… Admin user created successfully!") print(f"Email: {email}") print(f"Password: {password}") print(f"Role: {admin_user.role.value}") print(f"\nšŸ” Please change the password after first login!\n") if __name__ == "__main__": asyncio.run(create_admin())