"""Print the deterministic social media draft review delivery."""

from __future__ import annotations

import sys
from collections.abc import Sequence
from typing import TextIO

from autoshorts.content.brief import create_content_brief
from autoshorts.content.script_draft import create_script_draft
from autoshorts.content.to_candidate import convert_script_draft_to_candidate
from autoshorts.rendering.manifest import build_render_manifest
from autoshorts.rendering.preview import build_html_preview
from autoshorts.rendering.shot_plan import create_shot_plan
from autoshorts.social.delivery import prepare_social_draft_delivery
from autoshorts.social.draft import build_social_media_draft
from autoshorts.social.review import render_social_media_draft_review


def _build_demo_delivery():
    brief = create_content_brief(
        pillar_id="ai_life_systems",
        topic="AI weekly review routine",
        audience_problem="I use AI tools but still lose control of priorities.",
        payoff="a 10-minute Sunday review that keeps AI as assistant, not boss",
    )
    script = create_script_draft(brief)
    candidate = convert_script_draft_to_candidate(brief, script)
    preview = build_html_preview(build_render_manifest(create_shot_plan(script)))
    draft = build_social_media_draft(candidate, preview)
    review_text = render_social_media_draft_review(draft)
    return prepare_social_draft_delivery(review_text, topic="review")


def main(argv: Sequence[str] | None = None, *, stdout: TextIO | None = None) -> int:
    """Print social draft delivery metadata and review text without sending anything."""

    _ = argv or ()
    output = stdout or sys.stdout
    delivery = _build_demo_delivery()
    side_effects = ", ".join(delivery.side_effects) if delivery.side_effects else "none"
    approval = "yes" if delivery.requires_human_approval else "no"

    print(f"Delivery type: {delivery.delivery_type}", file=output)
    print(f"Topic: {delivery.topic}", file=output)
    print(f"Requires human approval: {approval}", file=output)
    print(f"Side effects: {side_effects}", file=output)
    print(f"Text length: {len(delivery.text)}", file=output)
    print("", file=output)
    print(delivery.text, file=output)
    return 0


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