diff --git a/app/schemas/compare_record.py b/app/schemas/compare_record.py index 3887bf0..0c16e52 100644 --- a/app/schemas/compare_record.py +++ b/app/schemas/compare_record.py @@ -85,6 +85,10 @@ class ComparisonResultIn(BaseModel): status: str | None = None # 门店打烊原因(price 为 None 时带): 与 status="store_closed" 等价的更早信号, 一并落库供前端兜底判打烊。 store_closed: str | None = None + # 该平台缺菜(漏菜)数量(pricebot 冗余进 comparison_results 行): 有价但少买了菜时 >0。 + # 记录页三平台网格据此逐格标"缺少 X 个菜品"(网格只拿 comparison_results, 拿不到 platform_results)。 + # 必须显式声明: 落库走 model_dump(), 不声明会被 pydantic 静默丢弃 → 记录页拿不到数量。 + skipped_dish_count: int | None = None class ComparisonRecordIn(BaseModel): diff --git a/tests/test_comparison_result_in_skipped.py b/tests/test_comparison_result_in_skipped.py new file mode 100644 index 0000000..7cd9653 --- /dev/null +++ b/tests/test_comparison_result_in_skipped.py @@ -0,0 +1,17 @@ +"""ComparisonResultIn 保留逐平台 skipped_dish_count(落库/回读用)。 + +记录页三平台网格要按逐平台缺菜数标"缺少 X 个菜品"; pricebot 现把 skipped_dish_count 冗余进 +comparison_results 行。上报边界必须显式声明该字段, 否则 model_dump() 会静默丢弃(POST 路径), +记录页拿不到。纯 schema, 不碰 DB。 +""" +from app.schemas.compare_record import ComparisonResultIn + + +def test_comparison_result_in_preserves_skipped_dish_count(): + r = ComparisonResultIn(platform_id="jd_waimai", price=25.0, skipped_dish_count=2) + assert r.model_dump().get("skipped_dish_count") == 2 + + +def test_comparison_result_in_skipped_defaults_none(): + r = ComparisonResultIn(platform_id="meituan", price=42.0, is_source=True) + assert r.model_dump().get("skipped_dish_count") is None