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

import sys
import argparse
from pathlib import Path

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

from core.workday_pipeline import run_one_realtor_workday


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

    parser.add_argument("--realtor-id", type=int, required=True)
    parser.add_argument("--set-mode", default="test")
    parser.add_argument("--no-require-test-mode", action="store_true")
    parser.add_argument("--no-require-test-account", 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("--publish-dry-run", 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)

    args = parser.parse_args()

    run_one_realtor_workday(
        realtor_id=args.realtor_id,
        set_mode=args.set_mode,
        require_test_mode=not args.no_require_test_mode,
        collect=not args.skip_collect,
        fetch=not args.skip_fetch,
        draft=not args.skip_draft,
        publish=not args.skip_publish,
        draft_buffer=args.draft_buffer,
        replenish_count=args.replenish_count,
        fetch_limit=args.fetch_limit,
        draft_limit=args.draft_limit,
        require_test_account=not args.no_require_test_account,
        publish_dry_run=args.publish_dry_run,
    )


if __name__ == "__main__":
    main()
