# -*- coding: utf-8 -*-
"""CALIB — thêm cột phục vụ việc BÁO CHO NGƯỜI DÙNG (chủ nhân yêu cầu 09/10/2026):
   hon_hop: email (nhận thông báo), bao_p / bao_c / bao_ghi (tình trạng đã báo từng mốc).
Backup CSDL B trước khi ALTER."""
import os, shutil, sqlite3, time

GOC = r'C:\Claw 2\Nghien cuu\Du-an-B-He-mau-Stain-Glaze'
DB = os.path.join(GOC, 'CSDLB.db')
os.makedirs(os.path.join(GOC, 'calib-app', '_backup'), exist_ok=True)
bak = os.path.join(GOC, 'calib-app', '_backup', 'CSDLB_bak_%s_truoc_them_cot_bao_mail.db' % time.strftime('%Y%m%d_%H%M'))
shutil.copy2(DB, bak)
print('backup:', os.path.basename(bak))

con = sqlite3.connect(DB)
c = con.cursor()
co = [r[1] for r in c.execute('PRAGMA table_info(hon_hop)')]
them = []
for cot, kieu in (('email', 'TEXT'), ('bao_p', 'TEXT'), ('bao_c', 'TEXT'), ('bao_ghi', 'TEXT')):
    if cot not in co:
        c.execute('ALTER TABLE hon_hop ADD COLUMN %s %s' % (cot, kieu))
        them.append(cot)
print('đã thêm cột:', them or '(đã có đủ)')
c.execute('INSERT INTO nhat_ky (ngay,viec,chi_tiet,nguon) VALUES (?,?,?,?)',
          (time.strftime('%Y-%m-%d %H:%M'), 'Thêm cột báo cho người dùng (app CALIB)',
           'hon_hop thêm: %s. Backup: %s' % (', '.join(them) or 'không', os.path.basename(bak)),
           'chủ nhân yêu cầu: xử lý xong là phải báo cho người dùng'))
con.commit()
print('cột cuối của hon_hop:', [r[1] for r in c.execute('PRAGMA table_info(hon_hop)')][-6:])
print('integrity:', c.execute('PRAGMA integrity_check').fetchone()[0])
con.close()
