You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import type { AlertType, CargoType } from "@/lib/frontend/types";
import { QUOTE_TIMEOUT_MS } from "@/lib/constants/quote";
export const CARGO_TYPE_OPTIONS: { value: CargoType; label: string }[] = [
{ value: "general_freight", label: "普通货物" },
{ value: "machinery", label: "机械设备" },
{ value: "furniture", label: "家具" },
{ value: "electronics", label: "电子产品" },
{ value: "building_materials", label: "建材" },
{ value: "auto_parts", label: "汽车配件" },
{ value: "food_nonperishable", label: "非生鲜食品" },
{ value: "apparel", label: "服装" },
{ value: "other", label: "其他" },
];
export { US_STATES } from "@/lib/frontend/us-states";
export const ALERT_TYPE_LABEL: Record<AlertType, string> = {
PRICE_DEVIATION: "价格偏差",
STALE_FALLBACK: "降级使用旧报价",
RPA_FAILED: "RPA 抓取失败",
RPA_CAPTCHA: "RPA 触发验证码",
STRUCT_CHANGE: "页面结构变更",
SESSION_EXPIRED: "会话过期",
SECURITY: "安全事件",
MANUAL_FALLBACK: "人工兜底",
};
export const ALERT_TYPE_TONE: Record<
AlertType,
"warning" | "error" | "neutral"
> = {
PRICE_DEVIATION: "warning",
STALE_FALLBACK: "warning",
RPA_FAILED: "error",
RPA_CAPTCHA: "error",
STRUCT_CHANGE: "error",
SESSION_EXPIRED: "error",
SECURITY: "error",
MANUAL_FALLBACK: "warning",
};
/** Direct 出档约 5–8s;2s 间隔会让页面比探针多空等一轮 */
export const POLL_INTERVAL_MS = 400;
/** 与后端 QUOTE_TIMEOUT_MS 对齐,避免 RPA 未完成前端先报超时 */
export const POLL_TIMEOUT_MS = QUOTE_TIMEOUT_MS;
/** 由超时窗口推导,供展示/测试参考 */
export const POLL_MAX_ATTEMPTS = Math.ceil(
POLL_TIMEOUT_MS / POLL_INTERVAL_MS,
);
export const SUBMIT_LOCK_MS = 3_000;
/** 地址候选 API 前端等待上限(毫秒):与后端 ADDRESS_CANDIDATES_TIMEOUT_MS 对齐 */
export const CANDIDATES_FETCH_TIMEOUT_MS = 300_000;
export const METRICS_THRESHOLDS = {
api_success_rate: 99,
rpa_success_rate: 95,
realtime_rate: 90,
cache_hit_rate: 30,
} as const;
export const AUTH_TOKEN_KEY = "chajia_admin_token";
export const AUTH_USER_KEY = "chajia_admin_user";