from pathlib import Path
from pypdf import PdfReader,PdfWriter
import json,shutil,zipfile,hashlib

HERE=Path(__file__).resolve().parent;ROOT=HERE.parents[6]
OUT=ROOT/'oss/local-deliverables/2026-09-24-AI运动营养师小程序页面版'
text_dir=OUT/'03-纯文字与可编辑版/01-纯文字版'
for p in (OUT/'03-纯文字与可编辑版/qa').glob('text-*/*.pdf'):shutil.copy2(p,text_dir/p.name)
merged=PdfWriter()
for name in ['产品介绍一页纸','渠道产品介绍一页纸']:merged.append(OUT/'01-小程序页面展示版'/f'{name}_小程序页面版.pdf')
merged.write(OUT/'01-小程序页面展示版/小程序页面展示_两页合辑.pdf')
manifest=[]
for folder in [OUT/'01-小程序页面展示版',text_dir]:
 for p in sorted(folder.iterdir()):
  if p.suffix=='.pdf':
   pages=len(PdfReader(p).pages);assert pages==(2 if '合辑' in p.name else 1)
  manifest.append({'path':str(p.relative_to(OUT)),'sha256':hashlib.sha256(p.read_bytes()).hexdigest()})
(OUT/'交付说明.txt').write_text('''AI运动营养师 小程序功能亮点版

当前推荐：页面展示版，产品和渠道各一页，含PDF/PNG。另附可编辑Word、TXT/Markdown与文字PDF。
重点：AI饮食问答、目标与训练卡、健康档案、热量摄入/消耗查看入口。
页面依据真实截图与现有代码结构本地矢量重绘，全部数值是示例，不含真实身份与健康数据。界面为节选展示，不宣称像素级实拍还原或本轮真机验收。
标题、正文和重绘页面文字均使用微软雅黑。训练卡为目标导向预设，未宣传为实时AI处方；相机和语音仅表示输入入口。
产品名称为健康体测一体机 + AI运动营养师。
''')
(OUT/'final-manifest.json').write_text(json.dumps(manifest,ensure_ascii=False,indent=2))
with zipfile.ZipFile(OUT/'AI运动营养师_小程序功能亮点版.zip','w',zipfile.ZIP_DEFLATED) as z:
 for folder,target in [(OUT/'01-小程序页面展示版','01-页面展示版'),(text_dir,'02-纯文字与可编辑版')]:
  for p in sorted(folder.iterdir()):
   if p.is_file():z.write(p,Path(target)/p.name)
 z.write(OUT/'交付说明.txt','交付说明.txt')
with zipfile.ZipFile(OUT/'AI运动营养师_小程序功能亮点版.zip') as z:assert z.testzip() is None
print(OUT/'AI运动营养师_小程序功能亮点版.zip')
