# -*- coding: utf-8 -*-
r"""B44: trả lời 'CSDL nào lưu BÀI HỌC Ở CÁC NHÀ MÁY' — số dòng + cột + mẫu thật."""
import os, sqlite3

C = r'C:\Claw-Zalo\CSDLC\CSDLC.db'
B = r'C:\c\deepseek-harness\claw2-db\btchem.db'


def mo(p):
    return sqlite3.connect('file:%s?mode=ro' % p.replace('\\', '/'), uri=True)


c = mo(C)
print('=== CSDLC.db (%s) — %.2f MB' % (C, os.path.getsize(C) / 1048576))
t = [r[0] for r in c.execute("select name from sqlite_master where type='table' order by name")]
print('   bảng:', ', '.join(t))
print('   kinh_nghiem:', c.execute('select count(*) from kinh_nghiem').fetchone()[0], 'dòng')
print('   cột kinh_nghiem:', ', '.join(r[1] for r in c.execute('pragma table_info(kinh_nghiem)')))
print('   theo trạng thái:', c.execute('select ifnull(trang_thai,"(trống)"), count(*) from kinh_nghiem group by 1 order by 2 desc').fetchall())
print('   gắn với bao nhiêu khách/nhà máy:', c.execute('select count(distinct khach_hang_id) from kinh_nghiem').fetchone()[0])
print('   mẫu 3 chủ đề mới nhất:')
for r in c.execute('select chu_de, hien_tuong, nguyen_nhan, cach_xu_ly from kinh_nghiem order by id desc limit 3'):
    print('     - chủ đề:', str(r[0])[:60])
    print('       hiện tượng:', str(r[1])[:90])
    print('       nguyên nhân:', str(r[2])[:90])
    print('       cách xử lý:', str(r[3])[:90])
c.close()

print()
b = mo(B)
print('=== btchem.db — bảng VỤ VIỆC KPH theo nhà máy ===')
print('   su_co_kph:', b.execute('select count(*) from su_co_kph').fetchone()[0], 'dòng')
print('   cột:', ', '.join(r[1] for r in b.execute('pragma table_info(su_co_kph)')))
print('   theo nhà máy:')
for r in b.execute('select ifnull(n.ten,"(chưa rõ)"), count(*) from su_co_kph s left join nha_may n on n.id=s.nha_may_id group by 1 order by 2 desc limit 6'):
    print('     %-32s %d vụ' % (r[0], r[1]))
print('   mẫu 2 vụ mới nhất:')
for r in b.execute('select ten_vu_viec, loai_sai, nguyen_nhan, phuong_an_xu_ly, trang_thai from su_co_kph order by id desc limit 2'):
    print('     -', ' | '.join(str(x)[:50] for x in r))
print('   bao_cao_sx có cột tinh_hinh_su_co:', b.execute("select count(*) from bao_cao_sx where ifnull(tinh_hinh_su_co,'')<>''").fetchone()[0], 'dòng có nội dung')
print('   nha_may:', b.execute('select count(*) from nha_may').fetchone()[0], 'nhà máy')
b.close()

print()
for d in (r'C:\Claw 2\QC\Bai-hoc-ky-thuat', r'C:\Claw 2\Bai-hoc-ky-thuat'):
    if os.path.isdir(d):
        fs = sorted(os.listdir(d))
        print('=== THƯ MỤC %s (%d mục)' % (d, len(fs)))
        for f in fs[:10]:
            fp = os.path.join(d, f)
            print('   - %-60s %s' % (f[:60], ('%d B' % os.path.getsize(fp)) if os.path.isfile(fp) else '[thư mục]'))
    else:
        print('=== (không có thư mục) %s' % d)
