#!/usr/bin/env python3
"""Build full Unit 1 book from individual DOCX files"""
import os
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH

OUT = "Unit1_My_Day_Kitap.docx"
parts = [
    "01_Cover.docx",
    "01_UnitInfo.docx",
    "02a_GrammarTerms.docx",
    "02b_Grade4_Review.docx",
    "02_Grammar.docx",
    "03_Vocabulary.docx",
    "04_Exam1_Easy.docx",
    "05_Exam2_Medium.docx",
    "06_Exam3_Hard.docx",
    "07_Reading1_Easy.docx",
    "08_Reading2_Medium.docx",
    "09_Reading3_Hard.docx",
    "10_AnswerKeys.docx",
]

merged = Document()
# Copy page setup from first part
src = Document(parts[0])
for i, s in enumerate(src.sections):
    if i >= len(merged.sections):
        merged.add_section()
    ms = merged.sections[i]
    ms.top_margin = s.top_margin
    ms.bottom_margin = s.bottom_margin
    ms.left_margin = s.left_margin
    ms.right_margin = s.right_margin

for idx, fname in enumerate(parts):
    if not os.path.exists(fname):
        print(f"  ⚠️ {fname} bulunamadı, atlanıyor")
        continue
    src = Document(fname)
    for para in src.paragraphs:
        new_p = merged.add_paragraph()
        # Copy paragraph alignment
        new_p.alignment = para.alignment
        # Copy runs
        for run_src in para.runs:
            r = new_p.add_run(run_src.text)
            if run_src.bold: r.bold = True
            if run_src.italic: r.italic = True
            if run_src.font.name: r.font.name = run_src.font.name
            if run_src.font.size: r.font.size = run_src.font.size
            if run_src.font.color and run_src.font.color.rgb:
                r.font.color.rgb = run_src.font.color.rgb
    # Copy tables
    for table in src.tables:
        new_t = merged.add_table(rows=len(table.rows), cols=len(table.columns))
        new_t.style = table.style
        for ri, row in enumerate(table.rows):
            for ci, cell in enumerate(row.cells):
                new_cell = new_t.cell(ri, ci)
                for pi, p in enumerate(cell.paragraphs):
                    if pi == 0:
                        np = new_cell.paragraphs[0]
                        np.text = ""
                    else:
                        np = new_cell.add_paragraph()
                    np.alignment = p.alignment
                    for run_src in p.runs:
                        r = np.add_run(run_src.text)
                        if run_src.bold: r.bold = True
                        if run_src.italic: r.italic = True
                        if run_src.font.name: r.font.name = run_src.font.name
                        if run_src.font.size: r.font.size = run_src.font.size
                        if run_src.font.color and run_src.font.color.rgb:
                            r.font.color.rgb = run_src.font.color.rgb
    # Page break between parts (except last)
    if idx < len(parts) - 1:
        merged.add_page_break()

# Final page
merged.add_page_break()
p = merged.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run("— KİTAP SONU —")
r.bold = True; r.font.size = Pt(14)
r.font.color.rgb = RGBColor(0x1a, 0x55, 0x9e)

merged.save(OUT)
sz = os.path.getsize(OUT)
print(f"✅ {OUT} ({sz//1024}KB, {len(merged.paragraphs)} paragraf)")
