#!/usr/bin/env python3
from pathlib import Path
import json,sys
P=Path(__file__).resolve().parents[1];t=(P/'script/script_sunburn_peeling.txt').read_text().casefold()
groups={
 'uva':['uva'],'uvb':['uvb'],'dna_damage':['tổn thương dna','dna bị hỏng'],'oxidative':['stress oxy hóa'],'keratinocyte':['keratinocyte','tế bào sừng'],'p53':['p53'],'cell_cycle':['dừng chu kỳ','chu kỳ tế bào'],'repair':['sửa chữa'],'apoptosis':['apoptosis','chết theo chương trình'],'sunburn_cells':['sunburn cell','tế bào cháy nắng'],'inflammation':['viêm'],'vasodilation':['giãn mạch'],'delayed_peeling':['bong tróc xuất hiện muộn','vài ngày sau'],'adhesion':['giảm kết dính','liên kết giữa các tế bào'],'basal_rebuild':['lớp đáy','xây lại hàng rào'],'not_reset':['không phải nút đặt lại','không phải toàn bộ'],
 'blister':['bóng nước'],'no_pop':['không chọc bóng nước','không làm vỡ'],'cool_not_ice':['không đặt đá','nước mát'],'moisturizer':['kem dưỡng ẩm'],'no_pull':['để các vảy tự rời','không kéo'],'broken_blister':['nếu bóng nước tự vỡ'],'pain_label':['đúng hướng dẫn trên nhãn'],'avoid_numbing':['benzocaine','lidocaine'],'tan_injury':['da rám nắng','không phải lá chắn'],'spf':['spf từ 30','spf 30'],'broad_spectrum':['phổ rộng'],'reapply':['bôi lại'],'red_flags':['bóng nước lan rộng','sốt','chóng mặt','lú lẫn'],'infection':['nhiễm trùng'],'photosensitivity':['nhạy cảm ánh sáng','thuốc đang dùng']}
missing=[k for k,v in groups.items() if not any(x in t for x in v)];out={'status':'PASS' if not missing else 'FAIL','missing':missing,'groups':len(groups)};(P/'logs/script_semantic_gate.json').write_text(json.dumps(out,ensure_ascii=False,indent=2)+'\n');print(json.dumps(out,ensure_ascii=False));sys.exit(bool(missing))
