import logging from app.core.config import settings from app.crud.user import create_user, get_user_by_email from app.db.session import SessionLocal from app.schemas.user import UserCreate logger = logging.getLogger(__name__) def init_db() -> None: """Initialize database with first superuser.""" db = SessionLocal() try: # Check if there's already a superuser user = get_user_by_email(db, email=settings.FIRST_SUPERUSER_EMAIL) if not user: logger.info("Creating first superuser") user_in = UserCreate( email=settings.FIRST_SUPERUSER_EMAIL, password=settings.FIRST_SUPERUSER_PASSWORD, is_admin=True, ) create_user(db, user=user_in) logger.info(f"Superuser {settings.FIRST_SUPERUSER_EMAIL} created") else: logger.info(f"Superuser {settings.FIRST_SUPERUSER_EMAIL} already exists") except Exception as e: logger.error(f"Error creating superuser: {e}") finally: db.close()