import { validateGuestCommentEmail } from "../../utils/post-comment-guest"; export type ResolvedGuestFields = { guestEmail: string | null; guestIsAnonymous: boolean; }; export function resolveGuestFields(input: { viewerPresent: boolean; guestEmail?: string; guestIsAnonymous?: boolean; }): ResolvedGuestFields { if (input.viewerPresent) { return { guestEmail: null, guestIsAnonymous: false }; } // 兼容过渡策略:旧客户端尚未上送 guestEmail/guestIsAnonymous 时,按匿名处理,避免发布窗口内全量 400。 // 待所有客户端完成升级后可移除此分支,恢复严格“默认非匿名且邮箱必填”语义。 const isLegacyGuestPayload = input.guestEmail == null && input.guestIsAnonymous === undefined; const guestIsAnonymous = input.guestIsAnonymous === true || isLegacyGuestPayload; const guestEmail = validateGuestCommentEmail(input.guestEmail, guestIsAnonymous); return { guestEmail, guestIsAnonymous }; }