﻿# VISTA Link PRD 后端技术评审问题清单

> 评审依据：`VISTA Link 产品需求文档 V0.35`  
> 评审视角：后端技术实现、数据模型、权限模型、状态机、接口、埋点统计、审计与非功能需求。  
> 说明：本文不是单纯找产品逻辑漏洞，而是从后端落地角度指出“不补充就难以设计表结构、接口、权限、统计或验收”的问题。

---

## 一、后端最需要优先确认的问题

| 编号 | 优先级 | 问题 | 后端影响 | 原文依据 |
|---|---|---|---|---|
| BE-01 | P0 | 分享链接状态机不完整 | 无法稳定设计链接状态、访问判断、复用逻辑和启停逻辑 | 第820行、第830行、第844行、第848行、第990–994行 |
| BE-02 | P0 | 分享资料快照与链接复用规则冲突 | 可能复用旧链接，导致客户看到旧内容；后端无法判断是否生成新链接 | 第837行、第844行、第975–977行 |
| BE-03 | P0 | C 端“仅该客户可访问”的身份校验方式未定义 | 后端无法实现绑定客户链接的访问鉴权 | 第243行、第1333行 |
| BE-04 | P0 | 客户解绑/删除后，原专属链接可能变成公开链接 | 解绑后权限状态不清，可能导致访问范围扩大 | 第541–543行、第555–556行、第1334行 |
| BE-05 | P0 | “被授权成员”没有授权模型和操作入口 | 后端无法设计授权表、授权对象和撤销规则 | 第1290行、第1293行、第1255–1269行 |
| BE-06 | P0 | 公司内共享关闭存在两套可见范围 | 查询权限条件无法确定 | 第796行、第1293行 |
| BE-07 | P0 | 素材项目权限与分享资料/链接权限链路未收口 | 跨项目、素材下线、用户权限变更后，历史对象如何访问不清楚 | 第185–192行、第937–938行、第1292行、第1386行 |

---

## 二、详细问题清单

### BE-01 分享链接状态机不完整

**问题说明：**  
PRD 中出现了分享链接的多个状态和动作：生成、复用、绑定客户、解绑客户、停用、启用、分享资料删除后仍可访问。但文档没有给出完整状态机。

**后端影响：**

- 无法明确链接什么时候可以访问；
- 无法明确停用后是否允许重新启用；
- 无法明确删除分享资料后链接还能否修改名称、绑定客户、查看访问记录；
- 无法明确解绑客户后链接是公开、私有、失效还是保留原访问规则；
- 无法明确复用链接时应该排除哪些状态。

**原文依据：**

- 第820行：分享链接状态为“启用 / 停用”；
- 第830行：支持停用或启用已有分享链接；
- 第844行：同一分享资料、同一客户、同一分享方式已有启用链接时，直接使用已有链接；
- 第848行：停用分享链接后，客户打开看到失效提示；
- 第990–994行：删除分享资料后，已生成分享链接仍可访问，如需停止客户访问，应停用分享链接。

**需要确认：**

1. 分享链接是否只有 `enabled / disabled` 两种状态，还是还需要 `draft / expired / deleted / orphaned` 等状态？
2. 分享资料删除后，链接是否仍允许修改名称、停用、启用、查看记录？
3. 客户解绑后，链接状态是否变化？
4. 被复用的“已有启用链接”是否必须是当前资料版本、当前客户绑定状态、当前权限仍合法？

---

### BE-02 分享资料快照与链接复用规则冲突

**问题说明：**  
分享链接保存生成时的分享资料快照；分享资料修改后，客户要看新版需要重新生成链接。但同时文档又要求同一分享资料、同一客户、同一分享方式已有启用链接时直接复用已有链接。

**后端影响：**

- 后端不知道再次分享时应该复用旧快照，还是生成新版链接；
- 如果只按第844行复用，客户可能持续看到旧内容；
- 如果每次编辑后生成新链接，又会违反“已有启用链接直接使用”的规则；
- 需要决定分享资料是否有版本号、链接快照是否记录版本号。

**原文依据：**

- 第837行：分享链接使用生成时的分享资料内容快照；
- 第844行：同一份分享资料、同一客户、同一分享方式已有启用链接时，分享操作直接使用已有链接；
- 第975行：分享资料编辑不修改已生成分享链接的内容；
- 第976行：分享链接生成时，需要保存当时分享资料的内容快照；
- 第977行：分享资料修改后，如需让购房客户看到新版内容，需要重新生成分享链接。

**需要确认：**

1. 分享资料是否需要 `version` 字段？
2. 分享链接是否保存 `share_material_version`？
3. 复用已有链接时，是否必须判断链接快照版本等于当前分享资料版本？
4. 如果已有链接是旧版本，系统是自动生成新链接，还是提示销售选择旧版/新版？

---

### BE-03 C 端“仅该客户可访问”的身份校验方式未定义

**问题说明：**  
PRD 说购房客户不登录 VISTA Link，但又要求绑定客户的链接只能该客户访问。后端需要知道 C 端如何识别打开者就是该客户。

**后端影响：**

- 无法设计 C 端访问鉴权；
- 无法判断“其他人打开提示无效”的依据；
- 无法判断链接转发、换设备、隐身模式、多浏览器访问时如何处理；
- 无法平衡安全性和购房客户访问体验。

**原文依据：**

- 第243行：购房客户不登录 VISTA Link，只在 HOMEVISTA 展示端访问分享资料；
- 第1333行：链接绑定了购房客户，则仅该客户可访问，其他人打开提示无效；
- 第1445行：已知风险中提到跨设备、链接转发会导致无法完全确认实际浏览者身份。

**需要确认：**

1. C 端是否需要短信/邮件验证码？
2. 是否通过客户手机号、邮箱、LINE 等联系方式校验？
3. 是否只是依赖不可猜测 URL？
4. 如果链接被转发，系统是阻止访问、记录风险，还是允许访问但只按链接统计？
5. “仅该客户可访问”是否需要降级为“仅持有该客户专属链接的人可访问”？

---

### BE-04 客户解绑/删除后，原专属链接可能变成公开链接

**问题说明：**  
PRD 支持客户解绑分享链接，也支持删除客户后解除客户与分享链接的关联；但访问规则又说未绑定客户的链接公开访问。

**后端影响：**

- 如果后端按文档直接实现，原本绑定客户的专属链接在解绑后会变成公开链接；
- 这属于访问权限扩大，风险较高；
- 需要单独定义“解绑后的链接访问状态”。

**原文依据：**

- 第541行：解绑后，该分享链接不再绑定该客户；
- 第542行：分享链接和历史访问记录保留；
- 第555行：删除客户不删除已创建的分享资料、分享链接和历史访问记录；
- 第556行：删除客户后解除客户与分享链接的关联；
- 第1334行：链接未绑定购房客户，则公开访问，任何人拿到链接都能看。

**需要确认：**

1. 客户解绑后，原链接是否自动停用？
2. 删除客户后，原绑定链接是否自动停用？
3. 是否需要区分“从创建时就是公开链接”和“曾经绑定客户、后来解绑的链接”？
4. 解绑后历史访问记录是否匿名化？

---

### BE-05 “被授权成员”没有授权模型和操作入口

**问题说明：**  
数据权限多次提到“授权成员”或“被授权成员”，但功能权限和具体功能流程里没有定义授权入口。

**后端影响：**

- 无法设计授权关系表；
- 无法判断授权对象是客户、素材组、分享资料、分享链接，还是全部业务对象；
- 无法判断授权粒度是查看、编辑、删除、分享还是查看统计；
- 无法处理授权撤销后的历史访问和统计权限。

**原文依据：**

- 第1290行：客户数据权限优先按创建人、负责人和授权成员判断；
- 第1293行：分享资料公司内共享关闭时，仅创建人和被授权成员可见；
- 第1255–1269行：功能权限表中没有明确“授权成员 / 撤销授权”权限。

**需要确认：**

1. 授权对象有哪些：客户、素材组、分享资料、分享链接、统计数据？
2. 授权粒度有哪些：查看、编辑、删除、分享、查看访问记录？
3. 谁可以授权，谁可以撤销？
4. 是否支持按成员、角色、部门授权？

---

### BE-06 公司内共享关闭存在两套可见范围

**问题说明：**  
一处规则说公司内共享关闭时仅创建人可见，另一处规则说创建人和被授权成员可见。

**后端影响：**

- 分享资料列表查询条件无法确定；
- 权限中间件无法统一；
- 如果实现“被授权成员可见”，需要补充授权模型；
- 如果实现“仅创建人可见”，第1293行规则需要删除或改写。

**原文依据：**

- 第796行：公司内共享关闭时，仅创建人可见；
- 第1293行：分享资料公司内共享关闭时，仅创建人和被授权成员可见。

**需要确认：**

1. 公司内共享关闭是否等于完全私有？
2. 如果允许被授权成员可见，授权入口在哪里？
3. 被授权成员是否能编辑、复制、生成链接，还是只能查看？

---

### BE-07 项目权限链路没有完全收口

**问题说明：**  
素材属于项目，但素材组、分享资料、分享链接不直接归属于项目；权限又要求按其中全部素材的项目权限判断。

**后端影响：**

- 查询素材组、分享资料、分享链接时需要反查全部素材项目；
- 跨项目分享资料会导致权限判断复杂；
- 用户失去某个项目权限后，已有分享资料和链接如何处理不清楚；
- 平台素材下线、删除、迁移项目后，历史快照和权限如何处理不清楚。

**原文依据：**

- 第185–192行：客户、素材、素材组、分享资料、分享链接的数据归属规则；
- 第937–938行：分享资料只保存实际使用的素材列表，不记录项目字段；
- 第1292行：素材组、分享资料、分享链接不直接归属于项目，但用户必须有权访问其中全部素材；
- 第1386行：项目访问范围必须影响素材访问，统计数据按其中素材项目访问范围判断。

**需要确认：**

1. 分享资料是否允许跨项目素材？
2. 是否需要在分享资料/链接上冗余项目集合，方便权限和统计查询？
3. 用户失去某项目权限后，是否还能查看自己历史创建的跨项目分享资料？
4. 客户已持有的链接是否受销售人员后续项目权限变化影响？

---

### BE-08 VISTA ADMIN 同步边界不清

**问题说明：**  
PRD 说租户、项目、用户来自 VISTA ADMIN，但 VISTA Link 又有成员邀请、停用成员、修改项目访问范围等权限。

**后端影响：**

- 不知道 VISTA Link 是否可以修改用户状态；
- 不知道成员邀请实际写入哪个系统；
- 不知道项目访问范围是 VISTA Link 本地配置，还是回写 VISTA ADMIN；
- 不知道两个系统数据冲突时谁优先。

**原文依据：**

- 第78行：租户创建、项目开通和初始账号创建由 VISTA ADMIN 完成；
- 第1220行：系统使用 VISTA ADMIN 中已开通的租户、项目和用户信息；
- 第1257行：成员权限包括查看成员、邀请成员、停用成员；
- 第1259行：项目访问范围权限包括查看和修改成员可访问项目。

**需要确认：**

1. VISTA ADMIN 和 VISTA Link 谁是用户主数据源？
2. VISTA Link 邀请成员是否创建 VISTA ADMIN 用户？
3. VISTA Link 停用成员是否同步停用 VISTA ADMIN 用户？
4. 项目访问范围是在 VISTA Link 独立维护，还是来自 VISTA ADMIN？

---

### BE-09 行为事件模型未定义

**问题说明：**  
PRD 定义了浏览记录和营销统计需要的结果，但没有定义 HOMEVISTA 展示端上报哪些事件、字段、去重和会话规则。

**后端影响：**

- 无法设计事件表；
- 无法设计 SDK 上报接口；
- 无法计算停留时长、反复浏览、比较、预约、下载；
- 无法处理重复刷新、后台停留、网络失败重试。

**原文依据：**

- 第1129–1134行：浏览记录包含打开链接、浏览素材、停留时长、比较页、预约、下载；
- 第1155行：浏览记录必须能回到分享链接和对应分享资料；
- 第1188–1190行：统计分享资料内各素材访问情况和重点行为；
- 第1481行：HOMEVISTA 展示端需集成追踪 SDK。

**需要确认：**

1. 事件类型有哪些：link_open、material_view、material_leave、compare_enter、download_click、reservation_submit 等？
2. 每类事件必须包含哪些字段？
3. 是否需要 session_id、visitor_id、device_id？
4. 停留时长由前端计算还是后端计算？
5. 事件重复上报如何去重？

---

### BE-10 停留时长和重点行为统计口径缺失

**问题说明：**  
“每个素材停留多久”“反复浏览”“进入比较页”“客户跟进持续时长”等指标没有明确算法。

**后端影响：**

- 无法设计聚合任务；
- 无法设计统计缓存；
- 无法验收统计结果；
- AI 跟进建议的依据不可解释。

**原文依据：**

- 第1131行：记录看了哪些素材、每个素材停留多久；
- 第1138–1139行：行为摘要需标出关注较多素材、反复比较等重点行为；
- 第1188–1190行：统计重点行为；
- 第1196行：客户跟进持续时长按第一次访问到最近一次访问计算；
- 第1405行：行为数据统计允许异步计算，但页面需展示数据更新时间。

**需要确认：**

1. 停留超过多少秒才算有效浏览？
2. 切后台、锁屏、关闭页面如何计算停留？
3. “反复浏览”阈值是多少？
4. “关注较多”按停留时长、访问次数还是交互次数？
5. 统计延迟 SLA 是多少？

---

### BE-11 外部链接点击与预约/下载完成口径不一致

**问题说明：**  
外部链接默认只记录点击行为，不记录外部页面里的预约完成、联系完成、下载完成。但营销统计又要求统计下载资料和提交预约。

**后端影响：**

- “下载资料”到底是点击下载链接，还是下载完成？
- “提交预约”到底是点击预约入口，还是外部表单提交成功？
- 如果外部系统不回传，统计结果可能被误解。

**原文依据：**

- 第666行：外部链接访问记录默认只记录点击行为，外部页面结果默认不记录；
- 第1157行：对外部链接，系统记录点击行为，外部页面结果默认不记录；
- 第1189行：重点行为统计包含下载资料、提交预约。

**需要确认：**

1. 首期统计中的预约/下载是“点击”还是“完成”？
2. 是否需要外部系统回传接口？
3. 如果没有回传，前端文案是否应显示为“点击预约入口 / 点击下载入口”？

---

### BE-12 API 约定过粗，不能直接开发

**问题说明：**  
PRD 只列出 API 类别，没有定义具体接口协议。

**后端影响：**

- 无法拆分服务边界；
- 无法给前端、外部智能体、HOMEVISTA 展示端对接；
- 无法实现统一鉴权、错误码、分页、幂等、审计。

**原文依据：**

- 第1344–1357行：接口约定仅列出素材目录 API、素材组 API、分享资料 API、分享链接 API、行为数据 API、客户管理 API。

**需要确认：**

1. API 鉴权方式是什么？
2. 租户 ID 从 token 获取，还是请求显式传入？
3. 列表接口分页、排序、筛选规则是什么？
4. 错误码规范是什么？
5. 外部智能体 API 和内部前端 API 是否共用同一套接口？

---

### BE-13 生成分享链接缺少幂等与并发规则

**问题说明：**  
分享操作可能生成新链接，也可能复用已有链接。并发点击或外部智能体重复调用时，可能生成多条重复链接。

**后端影响：**

- 需要唯一约束或幂等键；
- 需要定义“同一分享资料、同一客户、同一分享方式”的唯一范围；
- 需要处理 customer_id 为空的公开链接；
- 需要处理资料版本变化后的复用条件。

**原文依据：**

- 第844行：同一份分享资料、同一客户、同一分享方式已有启用链接时，直接使用已有链接；
- 第1353行：分享链接 API 传入分享资料、分享方式和可选客户标识，生成分享链接。

**需要确认：**

1. 是否建立唯一约束：`share_material_id + customer_id + share_method + status`？
2. customer_id 为空时，公开链接是否也只能有一条？
3. 并发请求时，是返回同一条链接还是允许多条？
4. 是否支持客户端传 `idempotency_key`？

---

### BE-14 AI 智能体写操作缺少事务、确认令牌和重放保护

**问题说明：**  
AI 智能体可以创建分享资料、保存素材组、生成分享链接、修改已保存数据。文档只说用户确认后写入，但没有定义确认机制。

**后端影响：**

- 用户重复点击确认可能重复写入；
- 确认前后权限变化如何处理不清楚；
- 会话草稿和正式数据如何转换不清楚；
- 外部智能体如何做确认不清楚；
- 失败后是否回滚不清楚。

**原文依据：**

- 第1031–1040行：智能体可读取客户、检索素材、生成分享资料草稿、生成分享链接草稿等；
- 第1063–1079行：保存素材组、创建分享资料、生成分享链接、修改已保存数据需要确认；
- 第1026行、第1329行：AI 智能体必须使用当前登录用户权限。

**需要确认：**

1. 会话确认是否生成一次性 confirmation_id？
2. confirmation_id 是否有过期时间？
3. 确认执行时是否重新校验权限？
4. 重复确认是否幂等？
5. 多个写操作是否在一个事务中完成？

---

### BE-15 外部智能体 API / MCP 权限模型不清

**问题说明：**  
文档说外部智能体通过 API / MCP 调用 VISTA Link，并受接口权限限制，但没有定义接口权限。

**后端影响：**

- 无法判断外部智能体代表用户调用，还是代表应用调用；
- 无法设计 OAuth、API Key、PAT 或会话 token；
- 无法设计 scope；
- 无法做审计归因。

**原文依据：**

- 第1081–1094行：内部智能体与外部智能体调用同一套权限规则，外部智能体通过 API / MCP 调用；
- 第1346–1357行：VISTA Link 通过 API 对外暴露能力，可封装为 MCP / Skill。

**需要确认：**

1. 外部智能体调用时的身份是谁？
2. 是否需要用户授权？
3. 是否支持租户级 API Key？
4. 每个接口是否需要 scope？
5. 操作日志中记录外部应用、用户，还是两者都记录？

---

### BE-16 删除策略不清：软删、硬删、匿名化未定义

**问题说明：**  
删除客户后，客户不再出现在客户列表和客户追踪中，但分享链接和历史访问记录保留。

**后端影响：**

- 不知道客户个人信息是否物理删除；
- 不知道历史访问记录是否保留 customer_id；
- 不知道是否允许恢复；
- 不知道统计中是否继续计算该客户；
- 可能涉及隐私和合规风险。

**原文依据：**

- 第553–556行：删除客户后二次确认，客户不再出现在列表和追踪中，但分享资料、分享链接、历史访问记录保留；
- 第1160行：不展示购房客户个人隐私信息；
- 第1337–1340行：客户数据权限和隐私展示规则。

**需要确认：**

1. 删除客户是软删除还是硬删除？
2. 删除后是否清除姓名、联系方式等 PII？
3. 历史访问记录是否保留 customer_id？
4. 是否支持恢复？
5. 删除客户后统计是否仍计入“有访问记录客户数”？

---

### BE-17 操作日志范围不足

**问题说明：**  
操作日志只覆盖部分配置和删除类操作，但后端高风险操作远不止这些。

**后端影响：**

- 无法追溯客户导出；
- 无法追溯链接停用/启用、解绑客户；
- 无法追溯权限变更后的数据访问；
- 无法追溯 AI 或外部 API 写操作。

**原文依据：**

- 第1395–1400行：操作日志要求记录成员、角色、项目访问范围变更，标签变更，删除客户、删除素材组、删除分享资料。

**需要确认：**

1. 是否记录客户导入/导出？
2. 是否记录分享链接生成、停用、启用、解绑客户？
3. 是否记录分享资料开启/关闭公司内共享？
4. 是否记录 AI 写操作和外部 API 调用？
5. 日志保留多久，谁能查看？

---

### BE-18 导入/导出规则不足

**问题说明：**  
客户导入导出涉及批量数据、隐私信息和权限控制，但规则较粗。

**后端影响：**

- 导入失败时不知道是否允许部分成功；
- 重复客户判断缺少标准化规则；
- 无法决定导出是否脱敏；
- 无法决定导出是否需要审计、水印或审批。

**原文依据：**

- 第459–490行：客户导入规则；
- 第493–521行：客户导出规则；
- 第489行：重复客户按手机号、邮箱、LINE、微信、WhatsApp 提示，原型中先不导入重复行；
- 第519–520行：默认导出当前筛选结果，不导出浏览明细和分享链接访问记录。

**需要确认：**

1. 导入是否支持部分成功？
2. 错误报告格式是什么？
3. 手机号、邮箱、LINE、微信、WhatsApp 如何标准化？
4. 导出是否需要脱敏？
5. 导出是否写操作日志？

---

### BE-19 标签唯一性和合并缺少规范化规则

**问题说明：**  
文档要求新增或修改标签时检查同名，但没有说明同名判断规则。

**后端影响：**

- 数据库唯一索引无法准确设计；
- 可能出现大小写、全半角、空格、Unicode 变体导致的重复标签；
- 合并标签时可能产生边界问题。

**原文依据：**

- 第447行：新增客户标签时检测租户内是否已有同名标签；
- 第453–455行：客户标签合并和删除规则；
- 第700–701行：新增或修改素材标签时检测租户内是否已有同名标签；
- 第705–708行：素材标签合并和删除规则。

**需要确认：**

1. 标签名是否 trim 前后空格？
2. 是否忽略大小写？
3. 是否统一全角/半角？
4. 日文假名、Unicode 归一化如何处理？
5. 标签合并是否需要事务和操作日志？

---

### BE-20 非功能性能指标太虚

**问题说明：**  
非功能需求只说“快速打开”“及时返回”，没有明确数据量、响应时间、并发量、统计延迟。

**后端影响：**

- 无法设计索引和缓存策略；
- 无法估算异步任务规模；
- 无法做性能验收；
- 无法判断是否需要队列、搜索引擎、OLAP 或预聚合表。

**原文依据：**

- 第1401–1405行：常用列表页快速打开，搜索筛选及时返回，行为数据统计允许异步计算；
- 第1422–1424行：指标与验收待补充。

**需要确认：**

1. 正常数据量是多少：租户数、项目数、素材数、客户数、链接数、事件量？
2. 列表页 P95 响应时间目标是多少？
3. 搜索筛选 P95 响应时间目标是多少？
4. 行为统计最大延迟是多少？
5. 首期是否需要支持大租户隔离扩展？

---

### BE-21 发布范围与 AI 成本/限流规则不匹配

**问题说明：**  
发布计划把 AI 智能体列入核心链路，但 AI 成本、收费、额度、失败计费、模型供应商等仍待确认。

**后端影响：**

- 无法判断是否需要用量表；
- 无法判断是否需要租户、用户、项目级限流；
- 无法判断失败调用是否计费；
- 无法判断是否需要模型供应商抽象层；
- 无法设计成本归因和账单数据。

**原文依据：**

- 第1432行：核心链路包含 AI 智能体；
- 第1102–1110行：AI 调用成本、是否单独收费、失败是否计费等待确认；
- 第1463–1472行：AI 收费方式、能力档位、供应商、用量上限等待讨论。

**需要确认：**

1. 首期是否必须上线 AI 智能体？
2. 是否需要记录每次 AI 调用成本？
3. 是否需要租户级、用户级、项目级额度？
4. AI 调用失败是否计费？
5. 是否需要支持多模型供应商切换？

---

## 三、建议产品补充的后端前置文档

### 1. 分享链接状态机

需要明确：

- 链接状态：草稿、启用、停用、失效、删除资料后保留等；
- 状态转换：生成、停用、启用、解绑客户、删除客户、删除分享资料；
- 每个状态下是否可访问、可编辑、可复用、可查看统计。

### 2. 权限模型说明

需要明确：

- 功能权限与数据权限如何组合；
- 创建人、负责人、授权成员、项目权限、公司内共享之间的优先级；
- 被授权成员的数据模型和操作入口；
- 权限变更后历史对象如何处理。

### 3. 行为事件与统计口径

需要明确：

- HOMEVISTA 展示端上报事件列表；
- 每类事件字段；
- session、visitor、device、link、customer 的关系；
- 停留时长、反复浏览、比较、下载、预约的算法；
- 异步统计延迟和数据更新时间展示规则。

### 4. API 详细约定

需要明确：

- REST API 路径、请求、响应；
- 鉴权方式；
- 租户隔离方式；
- 错误码；
- 分页、排序、筛选；
- 幂等键；
- 外部智能体 API scope。

### 5. 删除、审计与隐私规则

需要明确：

- 客户删除是软删、硬删还是匿名化；
- 历史访问记录如何保留；
- 哪些操作必须写操作日志；
- 日志保留时间；
- 客户导出是否需要脱敏、审批或水印。

---

## 四、后端总体结论

从后端视角看，这份 PRD 的业务方向是清楚的：围绕分享资料、分享链接、客户浏览行为和销售跟进建议构建 VISTA Link。

但当前最大风险是：**核心对象关系和状态机还没有完全收口**。尤其是分享资料、分享链接、客户、素材、项目权限、行为事件之间的关系，会直接影响数据库表结构、接口设计、权限中间件、埋点统计和后续扩展。

建议在进入详细开发前，优先补齐以下 6 个问题：

1. 分享链接状态机；
2. 分享资料版本与链接快照规则；
3. C 端客户身份校验方案；
4. 权限模型与授权成员模型；
5. HOMEVISTA 行为事件 schema；
6. API 幂等、审计和外部智能体权限规则。

如果这些不先定，后端很容易在开发中反复改表、改接口、改权限和改统计口径。


