/** BullMQ 队列名 */
export const RPA_QUEUE_NAME = "quote-rpa";

/** Worker 并发：Playwright 会话串行锁，1 避免多 job 争用 orphan active */
export const RPA_WORKER_CONCURRENCY = 1;

/** 报价入口 page.goto 超时（毫秒）；慢网/Cloudflare 场景需更长 */
export const RPA_PAGE_GOTO_TIMEOUT_MS = 45_000;

/** 单 job 超时（毫秒）：Playwright 填表+抓价上限 */
export const RPA_JOB_TIMEOUT_MS = 360_000;

/** 街道地址输入框 click/focus 超时（毫秒） */
export const RPA_STREET_INPUT_CLICK_MS = 8_000;

/** job 最大尝试次数（含首次 = 1 次重试） */
export const RPA_JOB_ATTEMPTS = 2;

/** 地址联想等待超时（毫秒） */
export const ADDRESS_SUGGESTION_TIMEOUT_MS = 5_000;

/** 地址候选 API 联想等待（毫秒）：Headless 下 Places 响应较慢 */
export const ADDRESS_CANDIDATE_SUGGESTION_TIMEOUT_MS = 12_000;

/** 报价 widget hydration 等待（毫秒）：en-US 首页渲染较慢，显式等待至元素就绪 */
export const RPA_WIDGET_HYDRATION_TIMEOUT_MS = 60_000;

/** 复用 quote_session storageState 时的 widget 就绪等待（毫秒） */
export const RPA_SESSION_WIDGET_TIMEOUT_MS = 15_000;

/** 地址候选 RPA 全流程上限（毫秒）：与 Next route maxDuration=300 对齐 */
export const ADDRESS_CANDIDATES_TIMEOUT_MS = 300_000;

/** CAPTCHA 触发的 Worker 暂停时长（分钟） */
export const CAPTCHA_PAUSE_MINUTES = 10;

/** Worker 心跳 TTL（秒） */
export const WORKER_HEARTBEAT_TTL_SECONDS = 30;

/** 报价完成信号等待上限（毫秒） */
export const RPA_QUOTE_CAPTURE_TIMEOUT_MS = 25_000;

/** 提交后额外收集 XHR 的短暂窗口（毫秒） */
export const RPA_QUOTE_POST_SUBMIT_SETTLE_MS = 2_000;

/** 偏差预警阈值（5%） */
export const PRICE_DEVIATION_THRESHOLD = 0.05;
