import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))

from services.v2.pipeline_context import PipelineContext
from services.v2.pipeline_manager import PipelineManager
from services.v2.session_stage import SessionStage
from services.v2.collect_stage import CollectStage
from services.v2.draft_stage import DraftStage
from services.v2.publish_stage import PublishStage


ctx = PipelineContext(
    pipeline_id="TEST",
    realtor_id=1,
)

manager = PipelineManager()

manager.register(SessionStage())
manager.register(CollectStage())
manager.register(DraftStage())
manager.register(PublishStage())

manager.run(ctx)

print()

print("session =", ctx.get("session_status"))
print("collect =", ctx.get("collect_count"))
print("draft =", ctx.get("draft_count"))
print("publish =", ctx.get("publish_count"))

print(ctx.logs)