# -*- coding: utf-8 -*-
"""Mở rộng CSDL B cho quy trình hiệu chỉnh có XÁC NHẬN MẬT KHẨU + lưu điều kiện chuẩn.

Thêm:
  hon_hop.dieu_kien        : điều kiện chuẩn khi kéo màu (thước kéo, base, giấy) — mặc định theo yêu cầu chủ nhân
  hon_hop.trang_thai_moi   : dùng cột trang_thai với giá trị 'cho_xac_nhan' (không cần đổi cấu trúc)
  hieu_chinh_mau.lab_moi   : L*a*b* của màu SAU hiệu chỉnh (JSON) do AGY đề xuất
  hieu_chinh_mau.nguon_anh : ảnh dùng để đối chiếu
Tạo tệp pass_hieu_chinh.txt (mặc định 19842026).
"""
import os, sqlite3, time

DB = r'C:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze\CSDLB.db'
GOC = r'C:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze\calib-app'
PASS_FILE = os.path.join(GOC, 'pass_hieu_chinh.txt')
DIEU_KIEN = ('Kéo màu bằng CÙNG thước kéo với màu mẫu · pha trong CÙNG loại base với mẫu · '
             'trên GIẤY TRẮNG cùng loại · tỉ lệ nhập là % màu pha trong base')

con = sqlite3.connect(DB)
c = con.cursor()
for bang, cot, kieu in (('hon_hop', 'dieu_kien', 'TEXT'), ('hieu_chinh_mau', 'lab_moi', 'TEXT'),
                        ('hieu_chinh_mau', 'nguon_anh', 'TEXT')):
    co = [r[1] for r in c.execute('PRAGMA table_info(%s)' % bang)]
    if cot not in co:
        c.execute('ALTER TABLE %s ADD COLUMN %s %s' % (bang, cot, kieu))
        print('   + %s.%s' % (bang, cot))
c.execute('UPDATE hon_hop SET dieu_kien=? WHERE dieu_kien IS NULL', (DIEU_KIEN,))
c.execute("INSERT INTO nhat_ky (ngay,viec,chi_tiet,nguon) VALUES (?,?,?,?)",
          (time.strftime('%Y-%m-%d %H:%M'), 'Thêm điều kiện chuẩn + cột lưu màu sau hiệu chỉnh',
           'hon_hop.dieu_kien (thước kéo/base/giấy trắng cùng loại, tỉ lệ = % màu trong base) · hieu_chinh_mau.lab_moi + nguon_anh; '
           'quy trình hiệu chỉnh nay cần MẬT KHẨU xác nhận trước khi ghi vào CSDL B.',
           'chủ nhân yêu cầu 08/10/2026'))
con.commit()
print('cột hon_hop:', [r[1] for r in c.execute('PRAGMA table_info(hon_hop)')])
print('cột hieu_chinh_mau:', [r[1] for r in c.execute('PRAGMA table_info(hieu_chinh_mau)')])
print('integrity:', c.execute('PRAGMA integrity_check').fetchone()[0])
con.close()

if not os.path.exists(PASS_FILE):
    open(PASS_FILE, 'w', encoding='utf-8').write('19842026')
    print('đã tạo', PASS_FILE)
print('mật khẩu hiệu chỉnh:', open(PASS_FILE, encoding='utf-8').read().strip())
