from __future__ import annotations import argparse from app.db.bootstrap import bootstrap_dev_data, create_all_tables from app.db.session import SessionLocal from app.settings import settings def main() -> None: parser = argparse.ArgumentParser(description="Initialize the MultiMailer database") parser.add_argument("--with-dev-data", action="store_true", help="Create default tenant/user/roles and a development API key") parser.add_argument("--dev-api-key", default=settings.dev_bootstrap_api_key, help="Development API key secret to create") args = parser.parse_args() create_all_tables() print("Database tables ensured.") if args.with_dev_data: with SessionLocal() as session: result = bootstrap_dev_data(session, api_key_secret=args.dev_api_key) print(f"Tenant: {result.tenant.slug} ({result.tenant.id})") print(f"User: {result.user.email} ({result.user.id})") if result.created_api_key: print("Development API key created:") print(result.created_api_key.secret) else: print("Development API key already exists or was not requested.") if __name__ == "__main__": main()