# -*- coding: utf-8 -*-
"""CALIB — xoá các CA TEST DANG DỞ (chủ nhân: "bỏ các ca đó đi, tôi test dang dở thôi" 09/10/2026).
Xoá dòng trong hon_hop + mọi dòng hieu_chinh_mau của ca đó + thư mục việc + ảnh; backup CSDL B trước.
Dùng: python _tools/don_ca_test.py 2 3 5 6      (mặc định: 2 3 5 6)
KHÔNG đụng bảng mau / mau_bang_in / he_so_cuong_do."""
import os, shutil, sqlite3, sys, time

GOC = r'C:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze'
CAL = os.path.join(GOC, 'calib-app')
DB = os.path.join(GOC, 'CSDLB.db')
VIEC = os.path.join(CAL, 'viec')

cac_ca = [int(x) for x in sys.argv[1:]] or [2, 3, 5, 6]
os.makedirs(os.path.join(CAL, '_backup'), exist_ok=True)
bak = os.path.join(CAL, '_backup', 'CSDLB_bak_%s_truoc_xoa_ca_test.db' % time.strftime('%Y%m%d_%H%M'))
shutil.copy2(DB, bak)
print('backup CSDL B:', os.path.basename(bak))

con = sqlite3.connect(DB)
c = con.cursor()


def dem():
    return {t: c.execute('SELECT COUNT(*) FROM %s' % t).fetchone()[0] for t in ('hon_hop', 'hieu_chinh_mau', 'mau', 'mau_bang_in')}


truoc = dem()
print('trước:', truoc)
for hid in cac_ca:
    r = c.execute('SELECT id,nguoi_nhap,trang_thai,thanh_phan,thu_muc FROM hon_hop WHERE id=?', (hid,)).fetchone()
    if not r:
        print('  #%s: không có trong CSDL B' % hid)
        continue
    n_hc = c.execute('SELECT COUNT(*) FROM hieu_chinh_mau WHERE hon_hop_id=?', (hid,)).fetchone()[0]
    c.execute('DELETE FROM hieu_chinh_mau WHERE hon_hop_id=?', (hid,))
    c.execute('DELETE FROM hon_hop WHERE id=?', (hid,))
    d = r[4] or os.path.join(VIEC, 'H%04d_%s' % (hid, time.strftime('%d%m')))
    xoa_dir = False
    if os.path.isdir(d):
        shutil.rmtree(d, ignore_errors=True)
        xoa_dir = True
    print('  đã xoá #%s (%s · %s · %s) — %d dòng hiệu chỉnh, thư mục: %s' % (hid, r[1], r[2], r[3], n_hc, 'xoá' if xoa_dir else 'không thấy'))

c.execute('INSERT INTO nhat_ky (ngay,viec,chi_tiet,nguon) VALUES (?,?,?,?)',
          (time.strftime('%Y-%m-%d %H:%M'), 'Xoá các CA TEST dang dở của app CALIB',
           'Xoá hỗn hợp %s (test dang dở, chưa từng có ảnh thực tế) + thư mục việc. Bảng mau/mau_bang_in KHÔNG đổi. Backup: %s'
           % (', '.join('#%d' % x for x in cac_ca), os.path.basename(bak)), 'chủ nhân yêu cầu 09/10/2026'))
con.commit()
sau = dem()
print('sau:  ', sau)
print('chênh lệch:', {k: sau[k] - truoc[k] for k in truoc})
print('integrity:', c.execute('PRAGMA integrity_check').fetchone()[0])
print('hỗn hợp còn lại:', c.execute('SELECT id,nguoi_nhap,trang_thai,delta_E FROM hon_hop ORDER BY id').fetchall())
print('màu CSDL B (he_so <> 1.0):', c.execute('SELECT COUNT(*) FROM mau WHERE he_so_cuong_do<>1.0').fetchone()[0])
con.close()
