feat(backend): 实现公开短链路由与秒级微官网详情 API (Task 08)

这个提交包含在:
wikiboss
2026-09-20 17:30:44 +08:00
父节点 2c3906b634
当前提交 7e0d9ee11b
共有 12 个文件被更改,包括 1935 次插入 和 1 次删除

查看文件

@@ -252,3 +252,78 @@ export interface TenantProfile {
/** 统一品牌 VI 套件 */
brandKit: BrandKit;
}
// ==========================================
// 5. 公开微官网聚合门户契约 (Card Portal Public Data)
// ==========================================
/**
* BentoBlockPublic - 对外公开的 Bento 块契约 (已剔除内部运维与敏感字段)
*/
export interface BentoBlockPublic {
/** 网格块主键 ID */
id: number | string;
/** 所属名片 ID */
cardId: number | string;
/** 组件类型 */
type: BentoBlockType;
/** 栅格跨列 (1 | 2) */
colSpan: BentoColSpan;
/** 栅格跨行 (1 | 2) */
rowSpan: BentoRowSpan;
/** 排序序号 (从小到大升序排列) */
sortOrder: number;
/** 块标题 */
title?: string;
/** 块正文 / 描述 / 嵌入内容 */
content?: string;
/** 多媒体资源 URL (图片/视频封面/音频) */
mediaUrl?: string;
/** 目标跳转外链 URL */
linkUrl?: string;
/** 扩展元数据配置 (禁止 any) */
metaJson?: string | Record<string, unknown>;
}
/**
* CardPortalDetail - 对外公开的微官网名片详情聚合契约 (已脱敏员工账号及内部配置)
*/
export interface CardPortalDetail {
/** 名片主键 ID */
id: number | string;
/** 自定义个性化短链 */
slug?: string;
/** 姓名 */
name: string;
/** 职业头衔/职位 */
title: string;
/** 所属企业/组织名称 */
company: string;
/** 个人签名 / 品牌 Slogan */
slogan?: string;
/** 头像 / 形象照 URL */
avatarUrl?: string;
/** 国际电话号码 */
phone?: string;
/** 电子邮箱 */
email?: string;
/** WhatsApp 国际直达账号/号码 */
whatsapp?: string;
/** LinkedIn 个人/企业主页链接 */
linkedin?: string;
/** 所在地时区 */
timezone?: string;
/** 姓名双语发音音频 URL (RFC 6350 语音扩展) */
audioPronunciationUrl?: string;
/** 主题样式代码 */
themeCode?: string;
/** 名片生命周期状态 */
status: CardStatus;
/** 聚合关联的全部有效 Bento 块列表 (按 sortOrder 升序排列) */
bentoBlocks: BentoBlockPublic[];
/** 企业/团队标准品牌 VI (可选) */
brandKit?: BrandKit;
/** 缓存时间戳 (毫秒),供客户端首屏秒开与协商缓存 */
cachedAt?: number;
}