diff --git a/app/schemas/compare_record.py b/app/schemas/compare_record.py index ed70801..d4fae31 100644 --- a/app/schemas/compare_record.py +++ b/app/schemas/compare_record.py @@ -78,8 +78,12 @@ class ComparisonRecordIn(BaseModel): comparison_results: list[ComparisonResultIn] = Field(default_factory=list) # 逐平台结局摘要(含失败平台的细分原因 status: store_not_found/items_not_found/below_minimum/ # unsupported/...)。来自 done.params.platform_results,客户端透传;落 raw_payload(不单列), - # admin「卡在哪一步」从这里读。list[dict] 宽松存(结构由 pricebot 定,只作 debug 展示)。 - platform_results: list = Field(default_factory=list) + # admin「卡在哪一步」从这里读。 + # ⚠️ pricebot done.params.platform_results 是 **dict(按 platform_id 键)**, 不是 list —— + # 客户端 fromComparison 原样 optJSONObject 透传上来 (见 android Protocol.kt)。早先误声明成 + # list 导致每条成功记录 422 被拒、记录页只剩失败/终止 (2026-06-17 引入 platform_results 上报后复现)。 + # 结构由 pricebot 定、仅作 debug 展示, 宽松存 dict; 兼容老的 list 形态以防回退。 + platform_results: dict | list = Field(default_factory=dict) skipped_dish_count: int | None = None skipped_dish_names: list[str] = Field(default_factory=list) total_dish_count: int | None = None