You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

40 lines
1.9 KiB

# -*- coding: utf-8 -*-
"""票 05:三份「workspace 列表分页.bru」focusFlag 结构 patch(票 01 字段变更 → 文档对齐)。
- 结构表 +1 行(DTO 末字段 lastViewTime 之后,示例值取 E2E 实测 1)
- 响应示例 JSON +1 字段(序列化序 = DTO 声明序)
- docs 说明段 +1 句语义(源码 @Schema 注释初稿改写,面向前端读者)
铁律:新增结构条目允许初稿注入;既有表述一个字不动。
"""
from pathlib import Path
DOCS = Path(r'E:\code\crm-api-docs\A4 客户管理')
FILES = [
DOCS / '客户公海' / 'workspace 列表分页.bru',
DOCS / '客户总览' / 'workspace 列表分页.bru',
DOCS / '我的客户' / 'workspace 列表分页.bru',
]
PATCHES = [
# (old, new, 期望命中次数)
('| content[].lastViewTime | string | null |',
'| content[].lastViewTime | string | null |\n | content[].focusFlag | number | 1 |',
1),
(' "lastViewTime": null\n }',
' "lastViewTime": null,\n "focusFlag": 1\n }',
1),
('projectCount 恒 null 前端显 "--"(契约)。',
'projectCount 恒 null 前端显 "--"(契约)。focusFlag:是否关注(1=已关注 0=未关注;'
'customer_focus 行存在=1),列表关注星标列数据源,三 workspace 通用。',
1),
]
for f in FILES:
txt = f.read_text(encoding='utf-8')
for old, new, expect in PATCHES:
n = txt.count(old)
assert n == expect, f'{f}: 锚点命中 {n} 次(期望 {expect}):{old[:40]}...'
txt = txt.replace(old, new, 1)
f.write_text(txt, encoding='utf-8', newline='') # newline='' 保持原行尾,不加 BOM
ok = all(p[1] in (txt := f.read_text(encoding='utf-8')) for p in PATCHES) # 复核
print(f'PATCHED {f.relative_to(DOCS)} focusFlag×3 复核={"OK" if ok else "FAIL"}')
print('\nDONE:3 份 × 3 处 = 9 处 patch')