#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""把 2027 客户商机 JSON + 品牌头尾 + SheetJS 注入自包含 HTML。"""
import argparse
import json
import os
import sys

BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import brand_kit as BK  # noqa: E402


def main():
    ap = argparse.ArgumentParser()
    ap.add_argument('--data', default=os.path.join(BASE, '数据', '客户商机演示_2027_v1.json'))
    ap.add_argument('--template', default=os.path.join(BASE, '脚本', 'customer_opportunity_demo_template.html'))
    ap.add_argument('--sheetjs', default='/Users/liuxinyuan/.hermes/profiles/zone-b/cache/scratch/xlsx.full.min.js')
    ap.add_argument('--out', default=os.path.join(BASE, '工具', '客户商机演示_2027_v1.html'))
    args = ap.parse_args()

    data = json.load(open(args.data, encoding='utf-8'))
    data_json = json.dumps(data, ensure_ascii=False, separators=(',', ':')).replace('</', '<\\/')
    sheetjs = open(args.sheetjs, encoding='utf-8').read().replace('</script', '<\\/script')
    tpl = open(args.template, encoding='utf-8').read()
    html = (tpl
            .replace('__BRAND_CSS__', BK.CSS)
            .replace('__HEADER__', BK.header_html(theme='dark', tag='营销中心 · 2027 客户商机演示'))
            .replace('__FOOTER__', BK.footer_html(extra='数据源：2027 诊断原料销售预测 V02 概率加权版 ｜ 客户活动截至 2026-11-09 ｜ 本页为本地自包含演示，不接飞书。'))
            .replace('__SHEETJS__', sheetjs)
            .replace('__DATA_JSON__', data_json))
    os.makedirs(os.path.dirname(args.out), exist_ok=True)
    with open(args.out, 'w', encoding='utf-8') as f:
        f.write(html)
    print('wrote', args.out, os.path.getsize(args.out), 'bytes')
    print('contains slogan', BK.SLOGAN in html, 'contains logo', 'data:image/png;base64,' in html)


if __name__ == '__main__':
    main()
