#!/usr/bin/env python3
"""REACH Kennisdossier v1.2 → v1.3: Replace emoji CLP pictograms with official ECHA PNG images."""

import shutil
from docx import Document
from docx.shared import Cm
from pathlib import Path

SRC = Path("/root/projects/jg/2026-consult-REACH-kennisdossier/deliverables/docx/REACH_Kennisdossier_v1.2.docx")
DST = Path("/root/projects/jg/2026-consult-REACH-kennisdossier/deliverables/docx/REACH_Kennisdossier_v1.3.docx")
ARCHIVE = Path("/root/projects/jg/2026-consult-REACH-kennisdossier/deliverables/docx/archive/REACH_Kennisdossier_v1.2.docx")
ICONS = Path("/root/projects/jg/2026-consult-REACH-kennisdossier/assets/clp-pictograms")

# ECHA NL names (exact)
ECHA = {
    "GHS01": ("ghs01.png", "Ontplofbaar"),
    "GHS02": ("ghs02.png", "Ontvlambaar"),
    "GHS03": ("ghs03.png", "Oxiderend"),
    "GHS04": ("ghs04.png", "Gassen onder druk"),
    "GHS05": ("ghs05.png", "Bijtend"),
    "GHS06": ("ghs06.png", "Giftig"),
    "GHS07": ("ghs07.png", "Acute gezondheidseffecten"),
    "GHS08": ("ghs08.png", "Milieugevaarlijk"),
    "GHS09": ("ghs09.png", "Ernstig gezondheidsgevaar"),
}

# Archive v1.2
ARCHIVE.parent.mkdir(parents=True, exist_ok=True)
if not ARCHIVE.exists():
    shutil.copy2(SRC, ARCHIVE)

doc = Document(str(SRC))
table = doc.tables[9]  # CLP pictogrammen tabel

for row_idx in range(1, len(table.rows)):
    row = table.rows[row_idx]
    code_cell = row.cells[0]
    code = code_cell.text.strip()
    
    if code not in ECHA:
        print(f"Skip R{row_idx}: unknown code '{code}'")
        continue
    
    png_file, nl_name = ECHA[code]
    
    # Fix column C1 (index 1): replace emoji with PNG image
    sym_cell = row.cells[1]
    # Clear existing text
    for p in sym_cell.paragraphs:
        for r in p.runs:
            r.text = ""
    # Add image
    sym_cell.paragraphs[0].clear()
    run = sym_cell.paragraphs[0].add_run()
    run.add_picture(str(ICONS / png_file), width=Cm(1.5))
    
    # Fix column C2 (index 2): update NL name
    name_cell = row.cells[2]
    for p in name_cell.paragraphs:
        for r in p.runs:
            r.text = nl_name
    
    print(f"R{row_idx} {code}: {nl_name}")

doc.save(str(DST))
print(f"\nSaved: {DST}")
