# -*- coding: utf-8 -*-
"""Hoàn nguyên hiệu chỉnh của HỒN HỢP KIỂM THỬ #1 (ảnh đối chiếu không phải hỗn hợp thật)
   - trả he_so_cuong_do về 1.0, so_lan_hieu_chinh = 0
   - bỏ phần ghi chú do lần hiệu chỉnh test
   - đánh dấu hỗn hợp #1 là bản ghi kiểm thử
   - GIỮ bảng hieu_chinh_mau nhưng đánh dấu da_ap_dung = 0 (lịch sử, không tính là đã dùng)
Chạy không tham số = xem trước; --hoan-nguyen = thực hiện.
"""
import sqlite3, sys, time

DB = r'C:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze\CSDLB.db'
XT = '--hoan-nguyen' in sys.argv
con = sqlite3.connect(DB)
c = con.cursor()
hh = c.execute('SELECT id,thanh_phan,anh_thuc_te,delta_E FROM hon_hop WHERE id=1').fetchone()
print('hỗn hợp #1:', hh)
print('hiệu chỉnh đã ghi cho #1:')
for r in c.execute('SELECT id,mau_id,mau_ten,gia_tri_cu,gia_tri_moi FROM hieu_chinh_mau WHERE hon_hop_id=1').fetchall():
    print('   · hc#%s mau_id=%s %s: %s → %s' % r)
print('hệ số hiện tại:', c.execute('SELECT ma,he_so_cuong_do,so_lan_hieu_chinh FROM mau WHERE so_lan_hieu_chinh>0').fetchall())

if not XT:
    print('\n(dự kiến: trả hệ số 2 màu về 1.0 · so_lan_hieu_chinh=0 · bỏ ghi chú HC test · hieu_chinh_mau.da_ap_dung=0 · đánh dấu hỗn hợp #1 là kiểm thử)')
    print('(chạy lại với --hoan-nguyen để thực hiện)')
    sys.exit(0)

ids = [r[0] for r in c.execute('SELECT mau_id FROM hieu_chinh_mau WHERE hon_hop_id=1 AND da_ap_dung=1').fetchall()]
for mid in ids:
    c.execute('''UPDATE mau SET he_so_cuong_do=1.0, so_lan_hieu_chinh=0, ngay_hieu_chinh=NULL,
                 ghi_chu=REPLACE(COALESCE(ghi_chu,''), (SELECT ' | HC ' || substr(ngay,9,2) || '/' || substr(ngay,6,2) || ': hệ số ' || gia_tri_cu || '→' || gia_tri_moi || ' (ΔE ' || delta_E_truoc || ')' FROM hieu_chinh_mau WHERE hon_hop_id=1 AND mau_id=?), '')
                 WHERE id=?''', (mid, mid))
    print('   hoàn nguyên màu id', mid)
c.execute("UPDATE hieu_chinh_mau SET da_ap_dung=0, ly_do=COALESCE(ly_do,'')||' [KHÔNG ÁP DỤNG — hỗn hợp #1 là kiểm thử hệ thống, ảnh đối chiếu là ảnh mẫu không phải hỗn hợp thật]' WHERE hon_hop_id=1")
c.execute("UPDATE hon_hop SET ghi_chu=COALESCE(ghi_chu,'')||' [KIỂM THỬ HỆ THỐNG: ảnh đối chiếu là ảnh mẫu tách từ bảng màu, KHÔNG phải hỗn hợp thật — đã hoàn nguyên hiệu chỉnh]' WHERE id=1")
c.execute("INSERT INTO nhat_ky (ngay,viec,chi_tiet,nguon) VALUES (?,?,?,?)",
          (time.strftime('%Y-%m-%d %H:%M'), 'Hoàn nguyên hiệu chỉnh của hỗn hợp kiểm thử #1',
           'Ảnh đối chiếu dùng để chạy thử là ảnh mẫu (không phải hỗn hợp RL82 60% + 2B8 40%), nên 2 hệ số 1.30/0.85 bị hoàn nguyên về 1.0; bảng hieu_chinh_mau giữ lại làm lịch sử với da_ap_dung=0.',
           'kiểm chứng nội bộ của trợ lý'))
con.commit()
con.execute('VACUUM')

print('\n=== SAU HOÀN NGUYÊN ===')
for r in c.execute('SELECT ma,he_so_cuong_do,so_lan_hieu_chinh,ngay_hieu_chinh FROM mau ORDER BY ma').fetchall():
    print('   ·', r)
print('   hieu_chinh_mau:', c.execute('SELECT COUNT(*), SUM(da_ap_dung) FROM hieu_chinh_mau').fetchone(), '(tổng, số đang áp dụng)')
print('   integrity:', c.execute('PRAGMA integrity_check').fetchone()[0])
print('   ghi chú RL82:', c.execute("SELECT ghi_chu FROM mau WHERE ma='RL82'").fetchone()[0][-90:])
con.close()
