#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""录入页「活动形式」对齐飞书「活动类型」四类（线下拜访/线上跟进/陌拜/协同拜访）。"""
import io
import os
import shutil
import sys
import time

F = '/Users/liuxinyuan/Desktop/Hermes输出-工作类/工具/活动录入.html'

P = [
    # 1) 提示文案 + 选项
    ("""<label>活动形式 <span style="color:#d93025">*</span> <span style="font-weight:400;color:var(--grey)">（拜访视图按此计线下/线上次数）</span></label>
        <select id="channel">
          <option value="">请选择…</option>
          <option value="offline">线下拜访</option>
          <option value="online">线上跟进</option>
        </select></div>""",
     """<label>活动形式 <span style="color:#d93025">*</span> <span style="font-weight:400;color:var(--grey)">（与飞书「活动类型」同一口径，统计按此计入）</span></label>
        <select id="channel">
          <option value="">请选择…</option>
          <option value="offline">线下拜访</option>
          <option value="online">线上跟进</option>
          <option value="cold">陌拜</option>
          <option value="joint">协同拜访</option>
        </select></div>"""),
    # 2) 校验提示
    ("if (!d.channel) miss.push('活动形式（线下拜访 / 线上跟进）');",
     "if (!d.channel) miss.push('活动形式（线下拜访 / 线上跟进 / 陌拜 / 协同拜访）');"),
    # 3) 预览展示
    ("""'<span class="k">活动形式</span><span>'+(d.channel==='offline'?'线下拜访':(d.channel==='online'?'线上跟进':'—'))+'</span>' +""",
     """'<span class="k">活动形式</span><span>'+(CH_LABEL[d.channel]||'—')+'</span>' +"""),
]

MAP_ANCHOR = "  var d = collect(), miss = [];"
MAP_NEW = """  var CH_LABEL = { offline: '线下拜访', online: '线上跟进', cold: '陌拜', joint: '协同拜访' };
  var d = collect(), miss = [];"""

def main():
    apply = '--apply' in sys.argv
    s = io.open(F, encoding='utf-8').read()
    ok = True
    for i, (a, b) in enumerate(P, 1):
        n = s.count(a)
        print('  %s 编辑%d 命中 %d' % ('✅' if n == 1 else '❌', i, n))
        if n != 1:
            ok = False
        else:
            s = s.replace(a, b, 1)
    n = s.count(MAP_ANCHOR)
    print('  %s 加 CH_LABEL 映射 命中 %d' % ('✅' if n == 1 else '❌', n))
    if n != 1:
        ok = False
    else:
        s = s.replace(MAP_ANCHOR, MAP_NEW, 1)
    if not ok:
        print('\n有未命中 → 不落盘')
        return 1
    if apply:
        bak = '/Users/liuxinyuan/Desktop/Hermes输出-工作类/_bak_p2d_entry_%s' % time.strftime('%Y%m%d-%H%M%S')
        os.makedirs(bak, exist_ok=True)
        shutil.copy2(F, os.path.join(bak, os.path.basename(F)))
        io.open(F, 'w', encoding='utf-8').write(s)
        print('\n  已写（备份 %s）' % bak)
    else:
        print('\n  干跑通过')
    return 0


sys.exit(main())
