from sqlalchemy.orm import Session from config.database import SessionLocal from config.settings import settings from models.user import User from utils.security import get_password_hash def init_database(): """Initialize database with default admin user.""" db = SessionLocal() try: # Check if admin user exists admin = db.query(User).filter(User.email == settings.ADMIN_EMAIL).first() if not admin: # Create admin user admin = User( email=settings.ADMIN_EMAIL, username="admin", full_name="Administrator", hashed_password=get_password_hash(settings.ADMIN_PASSWORD), is_active=True, is_admin=True ) db.add(admin) db.commit() print(f"Admin user created: {settings.ADMIN_EMAIL}") else: print(f"Admin user already exists: {settings.ADMIN_EMAIL}") except Exception as e: print(f"Error initializing database: {e}") db.rollback() finally: db.close()