from __future__ import annotations

import argparse
from pathlib import Path

from autoshorts.cli.website_companion_common import DEFAULT_WEBSITE_ROOT, find_companion_spec, find_review_package, print_json
from autoshorts.website_companion import build_website_companion_package


def main() -> None:
    parser = argparse.ArgumentParser(description="Write website candidate JSON only; do not run the Astro generator.")
    parser.add_argument("candidate_id")
    parser.add_argument("--review-package")
    parser.add_argument("--companion-spec")
    parser.add_argument("--website-root", default=str(DEFAULT_WEBSITE_ROOT))
    args = parser.parse_args()

    package = build_website_companion_package(
        review_package_path=find_review_package(args.candidate_id, args.review_package),
        companion_spec_path=find_companion_spec(args.candidate_id, args.companion_spec),
        website_root=Path(args.website_root),
        run_generator=False,
    )
    payload = package.to_dict()
    payload["mode"] = "dry_run"
    payload["note"] = "Candidate JSON was written for inspection. Markdown generation and Git push remain separate approvals."
    print_json(payload)


if __name__ == "__main__":
    main()
