"""Generate mechanism-explainer shot plans from Retention Studio artifacts."""

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.mechanism_pipeline import write_mechanism_shot_plans


def main() -> None:
    parser = argparse.ArgumentParser(description="Generate mechanism shot plans.")
    parser.add_argument("--explainers", default="data/retention_studio/mechanism_explainers.json")
    parser.add_argument("--out", default="data/mechanism_shot_plans")
    parser.add_argument("--title-contains", default=None)
    args = parser.parse_args()

    explainers = json.loads(Path(args.explainers).read_text(encoding="utf-8"))
    if args.title_contains:
        needle = args.title_contains.lower()
        explainers = [item for item in explainers if needle in item["title"].lower()]

    paths = write_mechanism_shot_plans(explainers, Path(args.out))
    print(f"Generated {len(paths)} mechanism shot plans in {args.out}")
    for path in paths:
        print(path)


if __name__ == "__main__":
    main()
