|
|
/** 报价有效期:3 分钟 */
|
|
|
export const QUOTE_VALIDITY_MS = 3 * 60 * 1_000;
|
|
|
|
|
|
/** processing 超时阈值:RPA job 360s + sweeper 60s 宽限期,避免误杀 active job */
|
|
|
export const RPA_QUOTE_PROCESSING_MS = 360 * 1_000;
|
|
|
|
|
|
/** sweeper 宽限:须晚于 RPA_JOB_TIMEOUT_MS + lock,再标记 failed */
|
|
|
export const QUOTE_SWEEPER_GRACE_MS = 60 * 1_000;
|
|
|
|
|
|
export const QUOTE_TIMEOUT_MS =
|
|
|
RPA_QUOTE_PROCESSING_MS + QUOTE_SWEEPER_GRACE_MS;
|
|
|
|
|
|
/** 超时扫描间隔:10 秒 */
|
|
|
export const SWEEPER_INTERVAL_MS = 10 * 1_000;
|
|
|
|
|
|
/** 幂等记录 TTL:24 小时 */
|
|
|
export const IDEMPOTENCY_TTL_MS = 24 * 60 * 60 * 1_000;
|
|
|
|
|
|
/** quote_id 前缀 */
|
|
|
export const QUOTE_ID_PREFIX = "QTE";
|
|
|
|
|
|
/** 核心四档 service_level × rate_option 组合(最低验收) */
|
|
|
export const REQUIRED_QUOTE_TIERS = [
|
|
|
{ service_level: "standard", rate_option: "lowest" },
|
|
|
{ service_level: "standard", rate_option: "fastest" },
|
|
|
{ service_level: "guaranteed", rate_option: "lowest" },
|
|
|
{ service_level: "guaranteed", rate_option: "fastest" },
|
|
|
] as const;
|
|
|
|
|
|
import { compareMotherShipUiTierSortOrder } from "@/lib/constants/mothership-ui-tiers";
|
|
|
|
|
|
/** MotherShip UI 可能出现的档位(仅排序参考,不作过滤白名单) */
|
|
|
export const UI_QUOTE_TIER_SORT_ORDER = [
|
|
|
{ service_level: "standard", rate_option: "lowest" },
|
|
|
{ service_level: "standard", rate_option: "fastest" },
|
|
|
{ service_level: "standard", rate_option: "bestValue" },
|
|
|
{ service_level: "guaranteed", rate_option: "lowest" },
|
|
|
{ service_level: "guaranteed", rate_option: "fastest" },
|
|
|
{ service_level: "guaranteed", rate_option: "bestValue" },
|
|
|
{ service_level: "dedicated", rate_option: "bestValue" },
|
|
|
] as const;
|
|
|
|
|
|
/** @deprecated 使用 UI_QUOTE_TIER_SORT_ORDER;MotherShip 返回档位数动态,禁止白名单过滤 */
|
|
|
export const UI_QUOTE_TIERS = UI_QUOTE_TIER_SORT_ORDER;
|
|
|
|
|
|
/** 稳定排序:与 MotherShip 官网 Tab 顺序一致(含 dedicated 及未来 Tab) */
|
|
|
export function compareUiTierSortOrder(
|
|
|
serviceLevelA: string,
|
|
|
rateOptionA: string,
|
|
|
serviceLevelB: string,
|
|
|
rateOptionB: string,
|
|
|
): number {
|
|
|
return compareMotherShipUiTierSortOrder(
|
|
|
serviceLevelA,
|
|
|
rateOptionA,
|
|
|
serviceLevelB,
|
|
|
rateOptionB,
|
|
|
);
|
|
|
}
|
|
|
|
|
|
/** MotherShip 可选档位(如最优性价比 bestValue) */
|
|
|
export const OPTIONAL_QUOTE_TIERS = [
|
|
|
{ service_level: "standard", rate_option: "bestValue" },
|
|
|
{ service_level: "guaranteed", rate_option: "bestValue" },
|
|
|
] as const;
|