# -*- coding: utf-8 -*-
"""HLQT — tạo bảng dữ liệu cho app huấn luyện QUY TRÌNH vào CSDL A (chủ nhân yêu cầu 08/10/2026).
Thêm 2 bảng vào CSDLA.db: `huan_luyen_ca` (mỗi ca nạp 1 bản màu) và `nhat_ky_hlqt` (nhật ký).
KHÔNG đụng vào 9 bảng cũ; backup CSDL A trước khi tạo."""
import os, shutil, sqlite3, time

GOC = r'C:\Claw 2\Nghien cuu\Du-an-A-Quy-trinh-son'
DB = os.path.join(GOC, 'CSDLA.db')
os.makedirs(os.path.join(GOC, '_backup'), exist_ok=True)
BAK = os.path.join(GOC, '_backup', 'CSDLA_bak_%s_truoc_tao_bang_HLQT.db' % time.strftime('%Y%m%d_%H%M'))
shutil.copy2(DB, BAK)
print('backup:', BAK, os.path.getsize(BAK), 'B')

con = sqlite3.connect(DB)
c = con.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS huan_luyen_ca (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    tao_luc TEXT, nguoi_nhap TEXT,
    ma_mau TEXT, he_son TEXT, loai_nen TEXT, yeu_cau TEXT, ghi_chu TEXT,
    anh_vao TEXT, anh_khac TEXT,
    trang_thai TEXT DEFAULT 'cho_de_nghi',
    de_nghi_luc TEXT, de_nghi_file TEXT, de_nghi_giay REAL,
    de_nghi_qt_id INTEGER, de_nghi_qt_ten TEXT, de_nghi_tom_tat TEXT, de_nghi_json TEXT,
    thuc_te_text TEXT, thuc_te_luc TEXT, thuc_te_file TEXT,
    phan_tich_luc TEXT, phan_tich_file TEXT, de_xuat_json TEXT,
    da_bo_sung INTEGER DEFAULT 0, ngay_bo_sung TEXT, qt_moi_id INTEGER, so_luat_them INTEGER,
    nguon TEXT, loi TEXT)''')
c.execute('''CREATE TABLE IF NOT EXISTS nhat_ky_hlqt (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    ngay TEXT, viec TEXT, chi_tiet TEXT, nguon TEXT)''')
c.execute("INSERT INTO nhat_ky_hlqt (ngay,viec,chi_tiet,nguon) VALUES (?,?,?,?)",
          (time.strftime('%Y-%m-%d %H:%M'), 'Tạo bảng cho app HLQT (huấn luyện quy trình CSDL A)',
           'Thêm huan_luyen_ca (mỗi ca = 1 bản màu + đề nghị + quy trình thực tế + phân tích + bổ sung) và nhat_ky_hlqt. '
           'Backup trước khi tạo: %s' % os.path.basename(BAK), 'chủ nhân yêu cầu 08/10/2026'))
con.commit()
print('\ncác bảng trong CSDL A:')
for r in c.execute("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name"):
    print('  %-18s %s dòng' % (r[0], c.execute('SELECT COUNT(*) FROM %s' % r[0]).fetchone()[0]))
print('integrity:', c.execute('PRAGMA integrity_check').fetchone()[0])
con.close()
