from __future__ import annotations import argparse import asyncio from app.configs.settings import get_settings from app.services.container import AppContainer async def main() -> None: parser = argparse.ArgumentParser(description="Create the first SumakaClone admin user.") parser.add_argument("--username", required=True) parser.add_argument("--password", required=True) parser.add_argument("--email", required=False) args = parser.parse_args() settings = get_settings() container = AppContainer(settings) await container.startup() try: if container.services is None: raise RuntimeError("Services not initialized.") admin = await container.services.auth.create_admin_user( username=args.username, password=args.password, email=args.email, ) print(f"Created admin user {admin.username} with ID {admin.id}") finally: await container.shutdown() if __name__ == "__main__": asyncio.run(main())