# -*- coding: utf-8 -*-

import os
import sys
import argparse
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parents[1]
sys.path.append(str(BASE_DIR))

from core.realtor_pipeline_core import run_one_realtor_pipeline


def main():
    parser = argparse.ArgumentParser()

    parser.add_argument("--realtor-id", type=int, required=True)
    parser.add_argument("--mode", choices=["auto", "server", "client", "draft-only"], default="auto")
    parser.add_argument("--set-publish-mode", default="")
    parser.add_argument("--require-test-mode", action="store_true")
    parser.add_argument("--allow-test-override", action="store_true", default=True)
    parser.add_argument("--no-test-override", action="store_true")
    parser.add_argument("--shift-today-published", action="store_true", default=True)
    parser.add_argument("--no-shift-today-published", action="store_true")
    parser.add_argument("--skip-collect", action="store_true")
    parser.add_argument("--skip-fetch", action="store_true")
    parser.add_argument("--skip-draft", action="store_true")
    parser.add_argument("--skip-publish", action="store_true")
    parser.add_argument("--draft-buffer", type=int, default=1)
    parser.add_argument("--replenish-count", type=int, default=1)
    parser.add_argument("--fetch-limit", type=int, default=3)
    parser.add_argument("--draft-limit", type=int, default=1)
    parser.add_argument("--publish-limit", type=int, default=1)

    args = parser.parse_args()

    run_one_realtor_pipeline(
        realtor_id=args.realtor_id,
        mode=args.mode,
        publish_mode_to_set=args.set_publish_mode,
        require_test_mode=args.require_test_mode,
        allow_test_override=not args.no_test_override,
        shift_today_published=not args.no_shift_today_published,
        skip_collect=args.skip_collect,
        skip_fetch=args.skip_fetch,
        skip_draft=args.skip_draft,
        skip_publish=args.skip_publish,
        draft_buffer=args.draft_buffer,
        replenish_count=args.replenish_count,
        fetch_limit=args.fetch_limit,
        draft_limit=args.draft_limit,
        publish_limit=args.publish_limit,
    )


if __name__ == "__main__":
    main()
