import glob
import re
import sys
from pathlib import Path

if hasattr(sys.stdout, "reconfigure"):
    sys.stdout.reconfigure(encoding="utf-8")

inbox_dir = Path("docs/design_requests/inbox")
files = sorted(inbox_dir.glob("*.md"))

print(f"Analyzing {len(files)} DRQ markdown files...\n")

for f in files:
    content = f.read_text(encoding="utf-8")
    
    # Extract deliverables block
    m_deliv = re.search(r"## 4\. DANH MỤC SẢN PHẨM ĐẦU RA MONG ĐỢI \(DELIVERABLES\)(.*?)(?:## 5\.|\Z)", content, re.DOTALL)
    delivs = []
    if m_deliv:
        for line in m_deliv.group(1).splitlines():
            line = line.strip()
            m = re.search(r"- \[[ x]\]\s*`?([^`]+)`?", line)
            if m:
                delivs.append(m.group(1).strip())
                
    # Extract section 3 specs rows
    specs_dict = {}
    m_specs = re.search(r"## 3\. THÔNG SỐ KỸ THUẬT CHI TIẾT \(TECHNICAL SPECIFICATIONS\)(.*?)(?:## 4\.|\Z)", content, re.DOTALL)
    if m_specs:
        for row in m_specs.group(1).splitlines():
            row = row.strip()
            if row.startswith("|") and not row.startswith("| :---") and not "Tiêu Chí Kỹ Thuật" in row:
                parts = [p.strip() for p in row.split("|")[1:-1]]
                if len(parts) >= 2:
                    specs_dict[parts[0].replace("**", "")] = parts[1]

    # Target path, dimensions, size budget, normal map req
    def find_val(pattern):
        m = re.search(pattern, content)
        return m.group(1).strip() if m else "N/A"

    req_id = find_val(r"\*\*Mã Yêu Cầu \(Request ID\)\*\*:\s*`?([A-Za-z0-9_\-]+)`?")
    dims = find_val(r"\*\*Kích Thước \(Dimensions\)\*\*:\s*`?([^`\n]+)`?")
    size_budget = find_val(r"\*\*Ngân Sách Dung Lượng \(Size Budget\)\*\*:\s*`?([^`\n]+)`?")
    normal_req = find_val(r"\*\*Yêu Cầu Normal Map \(Normal Map Required\)\*\*:\s*`?([^`\n]+)`?")
    target_path = find_val(r"\*\*Đường Dẫn Mục Tiêu \(Target Path\)\*\*:\s*`?([^`\n]+)`?")

    print(f"DRQ: {req_id} ({f.name})")
    print(f"  Header Dims: {dims} | Budget: {size_budget} | Normal Req: {normal_req}")
    print(f"  Target Path: {target_path}")
    print(f"  Resolution spec: {specs_dict.get('Độ Phân Giải (Resolution)', 'N/A')}")
    print(f"  Format spec: {specs_dict.get('Định Dạng Tệp (File Format)', 'N/A')}")
    print(f"  Deliverables ({len(delivs)}):")
    for d in delivs:
        ext = Path(d).suffix.lower()
        print(f"    - {d} (type: {ext})")
    print()
