"""Generate imported/free-tier AI clip assembly plans."""

from __future__ import annotations

import argparse
import json
import sys
from pathlib import Path

PROJECT_ROOT = Path(__file__).resolve().parents[1]
if str(PROJECT_ROOT) not in sys.path:
    sys.path.insert(0, str(PROJECT_ROOT))

from autoshorts.imported_clip_assembler import write_imported_clip_assembly_plans


def _load_jobs(path: Path) -> list[dict]:
    files = sorted(path.glob("*.json")) if path.is_dir() else [path]
    return [json.loads(file.read_text(encoding="utf-8")) for file in files]


def main() -> None:
    parser = argparse.ArgumentParser(description="Generate assembly plans for imported free-tier AI clips.")
    parser.add_argument("--jobs", default="data/free_production_jobs/mechanism_pilots")
    parser.add_argument("--imported-root", default="data/imported_ai_clips")
    parser.add_argument("--out", default="data/imported_clip_assembly_plans/mechanism_pilots")
    args = parser.parse_args()

    production_jobs = _load_jobs(Path(args.jobs))
    paths = write_imported_clip_assembly_plans(
        production_jobs,
        Path(args.out),
        imported_root=Path(args.imported_root),
    )
    print(f"Generated {len(paths)} imported clip assembly plans in {args.out}")
    for path in paths:
        print(path)


if __name__ == "__main__":
    main()
