# -*- coding: utf-8 -*-
"""
STEP103-20 Pipeline Resume Skip Test

실행:
  cd /d D:/honghee/blog_api
  python -m tools.test_v2_pipeline_resume_skip --realtor-id 1 --resume-from publish

목적:
- PipelineManager의 resume_from skip 기능을 검증한다.
- session/collect/draft가 skipped로 Timeline에 기록되고 publish만 실행되는지 확인한다.
- 기본은 dry-run publish.
"""

import argparse
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))

from services.v2.runner import build_default_manager, make_pipeline_id, print_v2_summary
from services.v2.pipeline_context import PipelineContext


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--realtor-id", type=int, default=1)
    parser.add_argument("--resume-from", default="publish")
    parser.add_argument("--scheduler-key", default="resume_skip_test")
    parser.add_argument("--execute-publish", action="store_true")
    args = parser.parse_args()

    context = PipelineContext(
        pipeline_id=make_pipeline_id(args.realtor_id),
        realtor_id=int(args.realtor_id),
        version="v2",
    )

    context.put("scheduler_key", args.scheduler_key)
    context.put("resume_from", args.resume_from)
    context.put("execute_publish", bool(args.execute_publish))
    context.put("draft_limit", 1)
    context.put("replenish_count", 1)

    manager = build_default_manager()
    manager.run(context)

    print_v2_summary(context)

    print("=" * 80)
    print("[RESUME SKIP TEST DONE]")
    print("pipeline_id:", context.pipeline_id)
    print("scheduler_key:", args.scheduler_key)
    print("resume_from:", args.resume_from)
    print("execute_publish:", args.execute_publish)
    print("=" * 80)


if __name__ == "__main__":
    main()
