"""Enumerate top-level items: one row per TimelineItem, never per filename."""
import argparse
from resolve_api_connection import connect
from resolve_api_timeline import collect_map, dumps


def main(argv=None):
    p = argparse.ArgumentParser(description=__doc__)
    p.add_argument("--types", nargs="+", choices=["video", "audio", "subtitle"],
                   default=["video", "audio", "subtitle"])
    a = p.parse_args(argv)
    report = collect_map(connect(), a.types)
    # Build a flat list only AFTER the bounded, checked read has finished.
    rows = [item for track in report["tracks"] for item in track["items"]]
    print(dumps({"timeline_id": report["timeline_id"], "scope": report["scope"],
                 "complete": report["complete"], "issues": report["issues"],
                 "units": report["units"], "consistency": report["consistency"],
                 "item_count": len(rows), "items": rows}))
    return 0 if report["complete"] else 2


if __name__ == "__main__":
    raise SystemExit(main())
