feat(desktop): drop parked review flow, add publish management
SaaS 侧人工审核后才创建 publish job,desktop 不再做二次审核:移除 manual/waiting_user/parked/from_parked 状态机与 LeaseFromParked 查询, desktop client 只执行发布并新增"发布管理"页(待发布队列 / 历史 / 再次 发送)。同时抽离 @geo/publisher-platforms 共享适配器包、新增 Redis-based desktop_presence 与 publish_record_support,刷新 admin-web 发布弹窗与 媒体库;plan A / spec 文档同步口径。
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
function normalizeText(value: string | null | undefined): string {
|
||||
return value?.trim() ?? "";
|
||||
}
|
||||
|
||||
export function normalizeAccountPlatformUid(value: string | null | undefined): string {
|
||||
let normalized = normalizeText(value);
|
||||
while (normalized.toLowerCase().startsWith("platform:")) {
|
||||
normalized = normalized.slice("platform:".length).trim();
|
||||
}
|
||||
return normalized;
|
||||
}
|
||||
|
||||
export function sameAccountPlatformUid(
|
||||
left: string | null | undefined,
|
||||
right: string | null | undefined,
|
||||
): boolean {
|
||||
const normalizedLeft = normalizeAccountPlatformUid(left);
|
||||
const normalizedRight = normalizeAccountPlatformUid(right);
|
||||
return Boolean(normalizedLeft) && normalizedLeft === normalizedRight;
|
||||
}
|
||||
|
||||
export function buildAccountIdentityKey(input: {
|
||||
platform: string;
|
||||
platformUid?: string | null;
|
||||
displayName?: string | null;
|
||||
}): string {
|
||||
const platform = normalizeText(input.platform).toLowerCase() || "unknown";
|
||||
const platformUid = normalizeAccountPlatformUid(input.platformUid);
|
||||
if (platformUid) {
|
||||
return `${platform}:${platformUid}`;
|
||||
}
|
||||
|
||||
const normalizedName = normalizeText(input.displayName).replace(/\s+/g, "").toLowerCase();
|
||||
return `${platform}:name:${normalizedName || "unknown"}`;
|
||||
}
|
||||
Reference in New Issue
Block a user