# -*- coding: utf-8 -*-
r"""B190: CHAN DOAN — so sanh tab_api.py hien tai voi ban backup truoc khi go CSDL C."""
import difflib, glob, io, os

GOC = r'C:\Claw 2\Nghien cuu\Dashboard-CSDL'
cur = io.open(os.path.join(GOC, 'tab_api.py'), encoding='utf-8').read()
baks = sorted(glob.glob(os.path.join(GOC, '_tab_api_truoc_go_CSDLC_*.bak')))
bak = io.open(baks[-1], encoding='utf-8').read() if baks else ''
print('  backup: %s' % (os.path.basename(baks[-1]) if baks else '(khong co)'))
print('  kich thuoc: backup %d byte / %d dong  ->  hien tai %d byte / %d dong' % (
    len(bak.encode()), bak.count('\n') + 1, len(cur.encode()), cur.count('\n') + 1))
print('\n  === moc kiem tra (backup -> hien tai):')
for k in ('def tab_tong_quan', 'def tab_mua_hang', 'def tab_su_co', 'def tab_mau_lam', 'def tab_san_xuat', 'def tab_kt',
          'def api', 'tong_kg_2026', 'bài học kinh nghiệm', 'Khách hàng (CSDL C)', 'Chủ đề bài học',
          "c = mo('csdlc')", 'Cơ cấu Kg theo nhóm khách', 'Số ngày sản xuất theo kỳ', 'Top khách hàng theo Kg'):
    print('     %-30s %3d -> %3d' % (k, bak.count(k), cur.count(k)))
print('\n  === dong bi XOA / THEM:')
d = list(difflib.unified_diff(bak.split('\n'), cur.split('\n'), lineterm='', n=0))
xoa = [l for l in d if l.startswith('-') and not l.startswith('---')]
them = [l for l in d if l.startswith('+') and not l.startswith('+++')]
print('     so dong xoa: %d | so dong them: %d' % (len(xoa), len(them)))
for l in xoa[:25]:
    print('     XOA  %s' % l[1:].strip()[:110])
for l in them[:15]:
    print('     THEM %s' % l[1:].strip()[:110])
