#!/usr/bin/env python3
"""Generate keyframe request packages for ChatGPT Pro/image generators."""

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.keyframe_package import write_keyframe_package


DEFAULT_PROMPT_PLAN = Path(
    "data/i2v_prompt_plans/mechanism_pilots/hidden-money-systems-warum-ein-billiges-auto-teuer-sein-kann.json"
)
DEFAULT_OUTPUT = Path(
    "data/keyframe_requests/mechanism_pilots/hidden-money-systems-warum-ein-billiges-auto-teuer-sein-kann.json"
)


def main() -> int:
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("--prompt-plan", type=Path, default=DEFAULT_PROMPT_PLAN)
    parser.add_argument("--output-file", type=Path, default=DEFAULT_OUTPUT)
    parser.add_argument("--keyframe-root", type=Path, default=Path("data/keyframes"))
    args = parser.parse_args()

    prompt_plan = json.loads(args.prompt_plan.read_text(encoding="utf-8"))
    path = write_keyframe_package(prompt_plan, output_file=args.output_file, keyframe_root=args.keyframe_root)
    print(path)
    return 0


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