from __future__ import annotations import argparse import json from pathlib import Path from fan_passport.content_importer import import_seed_file from fan_passport.database import SessionLocal, configure_database, init_db def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser(description="Import Fan Passport seed/content data.") parser.add_argument( "--seed-file", default="data/seeds/world_cup_2026_mvp.json", help="Path to a seed JSON file.", ) parser.add_argument( "--database-url", default=None, help="Override FAN_PASSPORT_DATABASE_URL for this import.", ) parser.add_argument( "--create-tables", action="store_true", help="Create database tables before importing content.", ) return parser def main() -> None: args = build_parser().parse_args() if args.database_url: configure_database(args.database_url) if args.create_tables: init_db() seed_path = Path(args.seed_file) with SessionLocal() as session: result = import_seed_file(session, seed_path) session.commit() print(json.dumps(result.as_dict(), indent=2, sort_keys=True)) if __name__ == "__main__": main()