import json
import re
from pathlib import Path

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

catalog = []
for d in drqs:
    content = d.read_text(encoding="utf-8")
    
    req_id = d.stem
    title_m = re.search(r"\*\*Tên Yêu Cầu \(Title\)\*\*:\s*(.+)", content)
    title = title_m.group(1).strip() if title_m else ""
    
    dept_m = re.search(r"\*\*Phòng Ban Khởi Tạo \(Requesting Dept\)\*\*:\s*(.+)", content)
    dept = dept_m.group(1).strip() if dept_m else ""
    
    cat_m = re.search(r"\*\*Phân Loại Tài Nguyên \(Asset Category\)\*\*:\s*`?([A-Za-z0-9_]+)`?", content)
    cat = cat_m.group(1).strip() if cat_m else ""
    
    prio_m = re.search(r"\*\*Mức Độ Ưu Tiên \(Priority\)\*\*:\s*`?([A-Za-z0-9_]+)`?", content)
    prio = prio_m.group(1).strip() if prio_m else ""
    
    agent_m = re.search(r"\*\*Sub-Agent Tiếp Nhận Chỉ Định \(Assigned Subagent\)\*\*:\s*`?([A-Za-z0-9_]+)`?", content)
    agent = agent_m.group(1).strip() if agent_m else ""
    
    target_m = re.search(r"\*\*Target Path\*\*:\s*`?([^`\r\n]+)`?", content)
    if not target_m:
        target_m = re.search(r"\*\*Đường Dẫn Mục Tiêu \(Target Path\)\*\*:\s*`?([^`\r\n]+)`?", content)
    target = target_m.group(1).strip() if target_m else ""
    
    dim_m = re.search(r"\*\*Dimensions\*\*:\s*`?([^`\r\n]+)`?", content)
    if not dim_m:
        dim_m = re.search(r"\*\*Kích Thước \(Dimensions\)\*\*:\s*`?([^`\r\n]+)`?", content)
    dims = dim_m.group(1).strip() if dim_m else ""
    
    norm_m = re.search(r"\*\*Normal Map Required\*\*:\s*`?([A-Za-z0-9_]+)`?", content)
    if not norm_m:
        norm_m = re.search(r"\*\*Yêu Cầu Normal Map \(Normal Map Required\)\*\*:\s*`?([A-Za-z0-9_]+)`?", content)
    norm_req = norm_m.group(1).strip() if norm_m else "NO"
    
    # Deliverables
    deliv_section = content.split("## 4. DANH MỤC SẢN PHẨM ĐẦU RA MONG ĐỢI")[-1].split("## 5.")[0]
    delivs = []
    for line in deliv_section.splitlines():
        line = line.strip()
        if line.startswith("- [") and "`" in line:
            parts = line.split("`")
            if len(parts) >= 3:
                p_str = parts[1].strip()
                delivs.append(Path(p_str).name)
                
    catalog.append({
        "id": req_id,
        "title": title,
        "dept": dept,
        "category": cat,
        "priority": prio,
        "agent": agent,
        "target_path": target,
        "sync_subfolder": str(Path(target.replace("client/webapp/assets/", "")).parent).replace("\\", "/"),
        "dimensions": dims,
        "normal_required": norm_req,
        "deliverables": delivs,
    })

print(f"Parsed {len(catalog)} DRQs:")
for c in catalog:
    print(f"[{c['priority']}] {c['id']} -> sync to: {c['sync_subfolder']}")
    print(f"  Deliverables ({len(c['deliverables'])}): {c['deliverables']}")

with open("c:/Projects/FreeExile/.agents/teamwork/explorer_pipeline_2/drq_catalog.json", "w", encoding="utf-8") as f:
    json.dump(catalog, f, indent=2, ensure_ascii=False)
