新增:宠物头像接线——铅笔角标接上传、列表与详情展示真实头像(T3.5-09)
- `Pet.avatarUrl` 入模型;列表卡与详情头像改用真实预签名 URL(无图仍回退 爪印占位——服务端对非 ready 的 asset 直接给 null,客户端只有一种占位)。 - 详情页铅笔角标自此有功能:接 `MediaUploader`(purpose=pet_avatar);已有 头像时先给「更换 / 移除」二选一,移除即三态显式 null。 - 权限按 **WRITE 档**呈现(ADR-022 D3.5-3:owner + caregiver 可改头像, viewer 无入口),与资料编辑的 MANAGE 档刻意不同。因此纯头像 PATCH 只发 `version` + `avatarAssetId`,**不夹带任何资料字段**——夹带会让服务端按更严 的一半定档,caregiver 立刻 403。 - `UpdatePetRequest.avatarAssetId` 是该 schema 唯一的三态字段,其余字段保持 M2 两态语义(它们的 CHECK 约束本就不允许空值,「清空」无意义)。 - 40902 冲突后重取档案让用户自行决定重来,不静默重放(头像是用户可见的 覆盖操作,不该自动生效两次)。 测试 588 → 597(+9)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/// pets 域测试样本(契约 openapi.yaml v1.2.0 各 schema 全字段 JSON)
|
||||
/// pets 域测试样本(契约 openapi.yaml v1.4.0 各 schema 全字段 JSON)
|
||||
/// 与共享假仓库。
|
||||
library;
|
||||
|
||||
@@ -27,6 +27,7 @@ Map<String, dynamic> samplePetJson({
|
||||
'microchipNo': null,
|
||||
'sterilizedOn': null,
|
||||
'status': 'active',
|
||||
'avatarUrl': null,
|
||||
'myRole': 'owner',
|
||||
'createdAt': '2026-09-01T10:00:00+08:00',
|
||||
'updatedAt': '2026-09-02T10:00:00+08:00',
|
||||
|
||||
Reference in New Issue
Block a user