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.
47 lines
1.4 KiB
47 lines
1.4 KiB
import { createFreshFlockTestAccount } from "@/lib/flock/fresh-account";
|
|
import { getFlockTestAccount, type FlockTestAccount } from "@/lib/flock/env";
|
|
import type {
|
|
FlockQuoteInput,
|
|
FlockRegistrationOverride,
|
|
} from "@/workers/rpa/flock/types";
|
|
|
|
export function hasFlockRegistrationOverride(
|
|
reg: FlockRegistrationOverride | undefined,
|
|
): boolean {
|
|
if (!reg) {
|
|
return false;
|
|
}
|
|
return Boolean(
|
|
reg.firstName?.trim() ||
|
|
reg.lastName?.trim() ||
|
|
reg.company?.trim() ||
|
|
reg.email?.trim() ||
|
|
reg.phone?.trim() ||
|
|
reg.shipmentsPerMonth?.trim(),
|
|
);
|
|
}
|
|
|
|
/** 用户自填注册信息与系统随机/环境默认合并 */
|
|
export function resolveFlockQuoteAccount(input: FlockQuoteInput): FlockTestAccount {
|
|
const reg = input.registration;
|
|
if (!hasFlockRegistrationOverride(reg)) {
|
|
return getFlockTestAccount();
|
|
}
|
|
|
|
const fallback = createFreshFlockTestAccount();
|
|
const merged: FlockTestAccount = {
|
|
firstName: reg!.firstName?.trim() || fallback.firstName,
|
|
lastName: reg!.lastName?.trim() || fallback.lastName,
|
|
company: reg!.company?.trim() || fallback.company,
|
|
email: reg!.email?.trim() || fallback.email,
|
|
phone: reg!.phone?.trim() || fallback.phone,
|
|
shipmentsPerMonth:
|
|
reg!.shipmentsPerMonth?.trim() || fallback.shipmentsPerMonth,
|
|
};
|
|
|
|
console.log(
|
|
`[flock-account] 使用用户指定注册信息 email=${merged.email} phone=${merged.phone}`,
|
|
);
|
|
return merged;
|
|
}
|