# -*- coding: utf-8 -*-
"""2-3-4-5. Sinif Ingilizce Yillik Mufredat 2026-2027 — TUM SINIFLAR TEK DOSYA."""
from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.section import WD_ORIENT
from docx.oxml.ns import qn
from docx.oxml import OxmlElement

CREAM = "F7F3EC"
ACCENT_RGB = RGBColor(0xE0, 0x78, 0x56)
INK = RGBColor(0x33, 0x33, 0x33)
GREY = RGBColor(0x77, 0x77, 0x77)

doc = Document()

s = doc.sections[0]
s.orientation = WD_ORIENT.LANDSCAPE
s.page_width, s.page_height = Cm(29.7), Cm(21.0)
for m in ("top_margin", "bottom_margin", "left_margin", "right_margin"):
    setattr(s, m, Cm(1.4))

st = doc.styles["Normal"]
st.font.name = "Arial"
st.font.size = Pt(10)
st.element.rPr.rFonts.set(qn("w:eastAsia"), "Arial")
st.paragraph_format.space_after = Pt(2)


def shade(cell, hexcolor):
    tcPr = cell._tc.get_or_add_tcPr()
    sh = OxmlElement("w:shd")
    sh.set(qn("w:val"), "clear")
    sh.set(qn("w:fill"), hexcolor)
    tcPr.append(sh)


def h(text, size=15, color=None, align=None, space_before=8, space_after=4):
    p = doc.add_paragraph()
    p.paragraph_format.space_before = Pt(space_before)
    p.paragraph_format.space_after = Pt(space_after)
    r = p.add_run(text)
    r.bold = True
    r.font.size = Pt(size)
    r.font.color.rgb = color or INK
    if align:
        p.alignment = align
    return p


def para(text, bold=False, size=10, italic=False, color=None, align=None):
    p = doc.add_paragraph()
    r = p.add_run(text)
    r.bold = bold
    r.italic = italic
    r.font.size = Pt(size)
    if color:
        r.font.color.rgb = color
    if align:
        p.alignment = align
    return p


def repeat_header(table):
    tr = table.rows[0]._tr
    trPr = tr.get_or_add_trPr()
    th = OxmlElement("w:tblHeader")
    th.set(qn("w:val"), "true")
    trPr.append(th)


def mktable(headers, rows, widths, fs=8.5):
    t = doc.add_table(rows=1, cols=len(headers))
    t.style = "Table Grid"
    t.autofit = False
    for i, w in enumerate(widths):
        for c in t.columns[i].cells:
            c.width = Cm(w)
    for i, htxt in enumerate(headers):
        cell = t.rows[0].cells[i]
        cell.text = ""
        p = cell.paragraphs[0]
        r = p.add_run(htxt)
        r.bold = True
        r.font.size = Pt(fs + 0.5)
        p.alignment = WD_ALIGN_PARAGRAPH.CENTER
        p.paragraph_format.space_after = Pt(1)
        shade(cell, CREAM)
    for row in rows:
        cells = t.add_row().cells
        for i, val in enumerate(row):
            cells[i].text = ""
            p = cells[i].paragraphs[0]
            r = p.add_run(str(val))
            r.font.size = Pt(fs)
            p.paragraph_format.space_after = Pt(1)
            if i == 0:
                p.alignment = WD_ALIGN_PARAGRAPH.CENTER
        for i, w in enumerate(widths):
            cells[i].width = Cm(w)
    repeat_header(t)
    return t


def unit_block(title, grammar, lexis):
    h(title, 12.5, INK, space_before=10, space_after=2)
    p = doc.add_paragraph()
    r = p.add_run("Grammar")
    r.bold = True
    r.font.size = Pt(10)
    r.font.color.rgb = ACCENT_RGB
    p.paragraph_format.space_before = Pt(3)
    p.paragraph_format.space_after = Pt(1)
    for it in grammar:
        bp = doc.add_paragraph(style="List Bullet")
        rr = bp.add_run(it)
        rr.font.size = Pt(9.5)
        bp.paragraph_format.space_after = Pt(0.5)
    p = doc.add_paragraph()
    r = p.add_run("Lexis")
    r.bold = True
    r.font.size = Pt(10)
    r.font.color.rgb = ACCENT_RGB
    p.paragraph_format.space_before = Pt(3)
    p.paragraph_format.space_after = Pt(1)
    for it in lexis:
        bp = doc.add_paragraph(style="List Bullet")
        rr = bp.add_run(it)
        rr.font.size = Pt(9.5)
        bp.paragraph_format.space_after = Pt(0.5)


# ==================== TITLE ====================
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
p.paragraph_format.space_before = Pt(18)
r = p.add_run("KKTC İlkokul İngilizce — Yıllık Müfredat")
r.bold = True
r.font.size = Pt(22)
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run("2. · 3. · 4. ve 5. Sınıf  |  2026-2027  |  39 öğretim haftası · 9 ünite/sınıf")
r.bold = True
r.font.size = Pt(13)
r.font.color.rgb = ACCENT_RGB
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run("Kaynak: KKTC MEB Temel Eğitim İngilizce Dersi Öğretim Programı  ·  Hazırlık: Serdarlı İlkokulu")
r.font.size = Pt(9)
r.font.color.rgb = GREY

# ==================== TAKVIM ====================
h("Eğitim Yılı Takvimi", 14, ACCENT_RGB, space_before=16)
mktable(
    ["Dönem", "Tarih", "Süre"],
    [
        ("Dönem 1", "15 Eylül – 19 Aralık 2026", "14 hafta"),
        ("Tatil", "21 Aralık 2026 – 4 Ocak 2027", "2 hafta"),
        ("Dönem 2", "5 Ocak – 26 Haziran 2027", "25 hafta"),
    ],
    widths=[4.0, 10.0, 4.0],
    fs=9.5,
)
para("Resmî tatiller (o hafta 4 gün eğitim):  29 Ekim 2026 (Per)  ·  23 Nisan 2027 (Cum)  ·  19 Mayıs 2027 (Çar)", size=9.5)

h("Sınav Takvimi (MEB)", 13, INK, space_before=10)
mktable(
    ["Sınav", "Kapsam", "Hafta"],
    [
        ("Quiz 1", "Unit 1-2", "Hafta 7"),
        ("Quiz 2 + Dönem Sonu Sınavı", "Unit 3-4 / Unit 1-4", "Hafta 14"),
        ("Quiz 3", "Unit 5-7", "Hafta 23"),
        ("Quiz 4", "Unit 7-9", "Hafta 30"),
        ("Yıl Sonu Sınavı", "Unit 1-9 (dört beceri)", "Hafta 34"),
    ],
    widths=[7.0, 8.0, 4.0],
    fs=9.5,
)

# ==================== 2. SINIF ====================
doc.add_page_break()
h("2. SINIF — Yıllık Plan (Pre-A1)", 16, ACCENT_RGB, space_before=2)
para("2. sınıf MEB PDF'inde yer almaz; Year 3 “Preliminary Work” içeriği + A0/Pre-A1 seviye temel alınmıştır.", italic=True, size=9, color=GREY)

g2_weeks = [
    ("1", "15-19 Eyl", "Unit 1", "Hello English!", "Selamlaşma (hello, hi, good morning), alfabe, sayılar 1-15"),
    ("2", "22-26 Eyl", "Unit 1", "Hello English!", "Sınıf eşyaları (pen, pencil, book…), renkler, “It is a ___”"),
    ("3", "29 Eyl-3 Eki", "Unit 1", "Hello English!", "Şekiller (circle, square, triangle), sınıf komutları, pekiştirme"),
    ("4", "06-10 Eki", "Unit 2", "My Classroom", "Sınıf eşyaları (detaylı), sayılar 1-20, “I have got ___”"),
    ("5", "13-17 Eki", "Unit 2", "My Classroom", "“What is this?” / “How many?” / this-that"),
    ("6", "20-24 Eki", "Unit 2", "My Classroom", "Pekiştirme: Bingo, spelling, “My School Bag” yazma"),
    ("7", "27-31 Eki", "Quiz 1", "Unit 1-2", "Quiz + geri bildirim  ⚠️ 29 Ekim tatili"),
    ("8", "03-07 Kas", "Unit 3", "My Family", "Aile üyeleri (mother, father, brother, sister, grandma, grandad)"),
    ("9", "10-14 Kas", "Unit 3", "My Family", "“This is my mother.” / “I have got a brother.” / Jobs (temel)"),
    ("10", "17-21 Kas", "Unit 3", "My Family", "Pekiştirme: family tree, “My Family” posteri"),
    ("11", "24-28 Kas", "Unit 4", "My Body", "Vücut parçaları (head, eye, nose, mouth, ear, hand, arm, leg, foot)"),
    ("12", "01-05 Ara", "Unit 4", "My Body", "“I have got two eyes.” / appearance (big, small, tall, short)"),
    ("13", "08-12 Ara", "Unit 4", "My Body", "Senses (see, smell, taste, hear), pekiştirme"),
    ("14", "15-19 Ara", "Quiz 2 + Dönem Sonu", "Unit 1-4", "Quiz 2 + Dönem 1 sınavı (dört beceri)"),
    ("15", "05-09 Oca", "Unit 5", "Colours & Clothes", "Renkler (tekrar), kıyafetler (shirt, T-shirt, shorts, trousers, dress, shoes)"),
    ("16", "12-16 Oca", "Unit 5", "Colours & Clothes", "“I am wearing a blue shirt.” / weather (cold, hot, warm)"),
    ("17", "19-23 Oca", "Unit 5", "Colours & Clothes", "Pekiştirme: “My Favourite Clothes” çizim + sunum"),
    ("18", "26-30 Oca", "Unit 6", "My Home", "Ev/odalar (house, bedroom, bathroom, kitchen, living room, garden)"),
    ("19", "02-06 Şub", "Unit 6", "My Home", "“This is my room.” / actions (brushing teeth, eating, sleeping)"),
    ("20", "09-13 Şub", "Unit 6", "My Home", "Pekiştirme: “My Home” çizimi + etiketleme"),
    ("21", "16-20 Şub", "Unit 7", "Animals", "Hayvanlar (dog, cat, bird, fish, horse, cow, rabbit, lion, elephant)"),
    ("22", "23-27 Şub", "Unit 7", "Animals", "“It is a dog.” / “I like cats.” / feelings (happy, sad, hungry)"),
    ("23", "09-13 Mar", "Quiz 3", "Unit 5-7", "Quiz 3 + geri bildirim"),
    ("24", "16-20 Mar", "Unit 8", "Food", "Yiyecekler (apple, banana, milk, water, bread, cake, pizza, egg)"),
    ("25", "23-27 Mar", "Unit 8", "Food", "“I like apples.” / “I don’t like fish.” / healthy-unhealthy"),
    ("26", "30 Mar-3 Nis", "Unit 8", "Food", "Days of the week (Monday-Sunday), pekiştirme"),
    ("27", "06-10 Nis", "Unit 9", "Toys & Games", "Oyuncaklar (ball, car, doll, kite, bike, balloon, train)"),
    ("28", "13-17 Nis", "Unit 9", "Toys & Games", "“I have got a ball.” / actions (catching, throwing, kicking, dancing)"),
    ("29", "20-24 Nis", "Unit 9", "Toys & Games", "Playground (hopscotch, tag, hide and seek), environment  ⚠️ 23 Nisan"),
    ("30", "27 Nis-1 May", "Quiz 4", "Unit 7-9", "Quiz 4 + geri bildirim"),
    ("31", "04-08 May", "Review", "Unit 1-9", "Genel tekrar: selamlaşma + sınıf + aile + vücut"),
    ("32", "11-15 May", "Review", "Unit 1-9", "Genel tekrar: renkler + ev + hayvanlar + yiyecek + oyuncaklar"),
    ("33", "18-22 May", "Review", "Unit 1-9", "Sınav hazırlığı  ⚠️ 19 Mayıs"),
    ("34", "25-29 May", "Yıl Sonu Sınavı", "Unit 1-9", "Yıl sonu sınavı"),
    ("35", "01-05 Haz", "Portfolio", "—", "Portfolio sunumları + “My English Book”"),
    ("36", "08-12 Haz", "Portfolio", "—", "İngilizce oyunları, şarkılar, drama"),
    ("37", "15-19 Haz", "Wrap-up", "—", "Yıl sonu etkinlikleri, sınıf partisi"),
    ("38", "22-26 Haz", "Wrap-up", "—", "Son hafta: oyun günü, sertifika dağıtımı"),
    ("39", "29 Haz-3 Tem", "Wrap-up", "—", "Buffer / makeup günleri"),
]
mktable(["Hf", "Tarih", "Ünite", "Konu", "İçerik"], g2_weeks, widths=[0.9, 2.4, 2.8, 3.6, 16.5], fs=8.5)

h("2. Sınıf — Ünite Detayları (Unit 1-9)", 13, INK, space_before=12)
unit_block("Unit 1 — Hello English!",
           ["Pronouns: I / you", "Verb to be: It is a ___ (tekil tanıtma)", "Selamlaşma kalıpları"],
           ["Selamlaşma: hello, hi, good morning, good afternoon, goodbye", "Sınıf eşyaları: pen, pencil, book, bag, ruler, rubber", "Renkler (11): red, blue, yellow, green, black, white, orange, pink, purple, brown, grey", "Sayılar: 1-15", "Şekiller: circle, square, triangle, star, heart"])
unit_block("Unit 2 — My Classroom",
           ["What is this? / How many…?", "Demonstratives: this / that", "I have got ___"],
           ["Sınıf eşyaları (detaylı)", "Sayılar: 1-20", "Sınıf komutları: sit down, stand up, open your book, listen"])
unit_block("Unit 3 — My Family",
           ["This is my ___", "I have got a brother/sister", "Aile tanıtımı"],
           ["Aile üyeleri: mother, father, brother, sister, grandma, grandad", "Jobs (temel): teacher, doctor, driver, farmer"])
unit_block("Unit 4 — My Body",
           ["I have got two ___", "Appearance: big/small, tall/short", "Senses verbs (temel)"],
           ["Body parts: head, eye, nose, mouth, ear, hand, arm, leg, foot", "Senses: see, smell, taste, hear"])
unit_block("Unit 5 — Colours & Clothes",
           ["I am wearing a ___", "Weather: It is cold/hot/warm"],
           ["Clothes: shirt, T-shirt, shorts, trousers, dress, skirt, shoes, hat", "Kolours (tekrar)", "Weather: cold, hot, warm, sunny, rainy"])
unit_block("Unit 6 — My Home",
           ["This is my ___", "Actions: is brushing / is eating / is sleeping"],
           ["Ev/odalar: house, bedroom, bathroom, kitchen, living room, garden", "Dai̇ly actions: brushing teeth, eating, sleeping, playing"])
unit_block("Unit 7 — Animals",
           ["It is a ___", "I like cats.", "Feelings: I am happy/sad/hungry"],
           ["Hayvanlar: dog, cat, bird, fish, horse, cow, rabbit, lion, elephant, monkey, duck, sheep", "Feelings: happy, sad, hungry, thirsty, scared, sleepy"])
unit_block("Unit 8 — Food",
           ["I like apples. / I don’t like fish.", "Healthy / unhealthy"],
           ["Yiyecekler: apple, banana, milk, water, bread, cake, pizza, egg, cheese, juice", "Days of the week: Monday-Sunday"])
unit_block("Unit 9 — Toys & Games",
           ["I have got a ball.", "Actions: catching, throwing, kicking, dancing"],
           ["Oyuncaklar: ball, car, doll, kite, bike, balloon, train, plane, blocks", "Playground: hopscotch, tag, hide and seek", "Environment: clean, dirty, recycle"])

# ==================== 3. SINIF ====================
doc.add_page_break()
h("3. SINIF — Yıllık Plan (A1)", 16, ACCENT_RGB, space_before=2)
para("Kaynak: KKTC MEB Temel Eğitim İngilizce Dersi Öğretim Programı — Year 3.", italic=True, size=9, color=GREY)

g3_weeks = [
    ("1", "15-19 Eyl", "Unit 1", "My Classroom", "Pronouns (I/you/it/they), verb to be, this/that, I have got", "Sınıf eşyaları, sayılar 1-20"),
    ("2", "22-26 Eyl", "Unit 1", "My Classroom", "What / How many, demonstratives", "Sınıf eşyaları, okul"),
    ("3", "29 Eyl-3 Eki", "Unit 1", "My Classroom", "Pekiştirme: spelling bee, bingo, school bag", "Sayılar 1-20, alphabet"),
    ("4", "06-10 Eki", "Unit 2", "My Family and Friends", "Family vocabulary, jobs (temel)", "Aile üyeleri, jobs"),
    ("5", "13-17 Eki", "Unit 2", "My Family and Friends", "“This is my mother.” / “She is a teacher.”", "Jobs, parents, grandparents"),
    ("6", "20-24 Eki", "Unit 2", "My Family and Friends", "Pekiştirme: family tree, “My Family” posteri", "Tüm aile + jobs"),
    ("7", "27-31 Eki", "Quiz 1", "Unit 1-2", "Quiz + geri bildirim  ⚠️ 29 Ekim", "—"),
    ("8", "03-07 Kas", "Unit 3", "Body and Appearance", "Size/appearance adjectives, senses verbs", "Body parts, see/smell/taste/hear"),
    ("9", "10-14 Kas", "Unit 3", "Body and Appearance", "“I have got two eyes.” / “He is tall.”", "big/small/tall/short/fat/thin"),
    ("10", "17-21 Kas", "Unit 3", "Body and Appearance", "Pekiştirme: “My Robot” body labeling", "Tüm body vocabulary"),
    ("11", "24-28 Kas", "Unit 4", "Colours and Clothes", "Clothes vocabulary, weather words", "shirt, T-shirt, shorts, trousers, dress, shoes"),
    ("12", "01-05 Ara", "Unit 4", "Colours and Clothes", "“I am wearing ___” / weather (cold, hot, warm)", "cold, hot, dry, wet, warm"),
    ("13", "08-12 Ara", "Unit 4", "Colours and Clothes", "Landscape (mountain, desert, jungle), pekiştirme", "Tüm clothes + weather"),
    ("14", "15-19 Ara", "Quiz 2 + Dönem Sonu", "Unit 1-4", "Quiz 2 + Dönem 1 sınavı", "—"),
    ("15", "05-09 Oca", "Unit 5", "My Home", "House vocabulary, rooms", "house, bedroom, bathroom, kitchen, living room"),
    ("16", "12-16 Oca", "Unit 5", "My Home", "Actions (brushing, combing, eating, drinking, sleeping)", "Daily actions"),
    ("17", "19-23 Oca", "Unit 5", "My Home", "“I am brushing my teeth.” / pekiştirme", "Rooms + actions"),
    ("18", "26-30 Oca", "Unit 6", "Animals", "Animals vocabulary", "dog, cat, bird, fish, horse, sheep, cow, duck, rabbit"),
    ("19", "02-06 Şub", "Unit 6", "Animals", "“It is a dog.” / “Dogs can run.” / feelings", "happy, sad, angry, hungry, thirsty"),
    ("20", "09-13 Şub", "Unit 6", "Animals", "Pekiştirme: animal flashcards, “My Pet” çizimi", "Tüm animals"),
    ("21", "16-20 Şub", "Unit 7", "Food", "Food vocabulary", "fruit, banana, apple, milk, water, bread, cake, pizza"),
    ("22", "23-27 Şub", "Unit 7", "Food", "“I like ___” / “I don’t like ___” / healthy-unhealthy", "salty, sweet, healthy, unhealthy"),
    ("23", "09-13 Mar", "Quiz 3", "Unit 5-7", "Quiz 3 + geri bildirim", "—"),
    ("24", "16-20 Mar", "Unit 7", "Food", "Days of the week, pekiştirme", "Monday-Sunday"),
    ("25", "23-27 Mar", "Unit 8", "My Friends", "Furniture + toys vocabulary", "table, chair, bed, wardrobe, sofa, TV, lamp, fridge"),
    ("26", "30 Mar-3 Nis", "Unit 8", "My Friends", "“I have got a ball.” / toys", "ball, car, doll, plane, kite, bike, balloon, train"),
    ("27", "06-10 Nis", "Unit 8", "My Friends", "Personal belongings (phone, computer, camera), pekiştirme", "Tüm furniture + toys"),
    ("28", "13-17 Nis", "Unit 9", "My Favourites", "Playground actions", "catching, throwing, hitting, kicking, dancing, singing"),
    ("29", "20-24 Nis", "Unit 9", "My Favourites", "Playground vocabulary, environment  ⚠️ 23 Nisan", "hopscotch, tag, hide and seek, recycle"),
    ("30", "27 Nis-1 May", "Quiz 4", "Unit 7-9", "Quiz 4 + geri bildirim", "—"),
    ("31", "04-08 May", "Review", "Unit 1-4", "Dönem 1 tekrarı (classroom, family, body, clothes)", "—"),
    ("32", "11-15 May", "Review", "Unit 5-9", "Dönem 2 tekrarı (home, animals, food, friends, favourites)", "—"),
    ("33", "18-22 May", "Review", "Tüm üniteler", "Sınav hazırlığı  ⚠️ 19 Mayıs", "—"),
    ("34", "25-29 May", "Yıl Sonu Sınavı", "Unit 1-9", "Yıl sonu sınavı (dört beceri)", "—"),
    ("35", "01-05 Haz", "Portfolio", "—", "Portfolio sunumları + “My English Book”", "—"),
    ("36", "08-12 Haz", "Portfolio", "—", "İngilizce oyunları, şarkılar, drama", "—"),
    ("37", "15-19 Haz", "Wrap-up", "—", "Yıl sonu etkinlikleri, sınıf partisi", "—"),
    ("38", "22-26 Haz", "Wrap-up", "—", "Son hafta: oyun günü, sertifika dağıtımı", "—"),
    ("39", "29 Haz-3 Tem", "Wrap-up", "—", "Buffer / makeup günleri", "—"),
]
mktable(["Hf", "Tarih", "Ünite", "Konu", "Grammar / Odak", "Kelime"], g3_weeks, widths=[0.9, 2.2, 2.6, 3.2, 10.5, 7.6], fs=8.5)

h("3. Sınıf — Ünite Detayları (Unit 1-9)", 13, INK, space_before=12)
unit_block("Unit 1 — My Classroom",
           ["Verb to be (inverted questions & short answers)", "Pronouns: I, you, it, they", "Question words: What, How many", "Demonstratives: this / that", "I have got…"],
           ["School — Sınıf eşyaları (~22)", "Numbers (1-20)", "Alphabet & spelling"])
unit_block("Unit 2 — My Family and Friends",
           ["This is my ___. / She is a teacher.", "Family + jobs tanıtımı"],
           ["Aile üyeleri: mother, father, brother, sister, grandmother, grandfather, aunt, uncle, cousin", "Jobs (~12): teacher, doctor, nurse, driver, farmer, cook, police officer"])
unit_block("Unit 3 — Body and Appearance",
           ["Size/appearance adjectives: big, small, tall, short, thin, fat", "Senses verbs: see, smell, taste, hear", "I have got two ___."],
           ["Body parts (~16): head, hair, eye, ear, nose, mouth, tooth, arm, hand, finger, leg, foot, knee", "Appearance (6)"])
unit_block("Unit 4 — Colours and Clothes",
           ["I am wearing ___", "Weather: It is cold/hot/warm", "Colours (tekrar)"],
           ["Clothes (~14): shirt, T-shirt, shorts, trousers, dress, skirt, jacket, shoes, socks, hat", "Weather (5): cold, hot, warm, dry, wet", "Landscape (3): mountain, desert, jungle"])
unit_block("Unit 5 — My Home",
           ["I am brushing my teeth. (Present Continuous)", "There is / There are (temel)"],
           ["House/rooms (6): house, bedroom, bathroom, kitchen, living room, garden", "Daily actions (~11): brushing, combing, eating, drinking, sleeping, washing, playing"])
unit_block("Unit 6 — Animals",
           ["It is a dog.", "Dogs can run. (can — yetenek)", "Feelings: I am happy/sad/angry"],
           ["Animals (~19): dog, cat, bird, fish, horse, sheep, cow, duck, rabbit, lion, elephant, monkey, bear, snake", "Feelings (6): happy, sad, angry, hungry, thirsty, scared"])
unit_block("Unit 7 — Food",
           ["I like ___ / I don’t like ___", "Healthy / unhealthy", "Days of the week"],
           ["Food (~20): fruit, banana, apple, orange, milk, water, bread, cake, pizza, egg, cheese, meat, chicken", "Taste: salty, sweet, healthy, unhealthy"])
unit_block("Unit 8 — My Friends",
           ["I have got a ball.", "Possession (have got)", "Personal belongings"],
           ["Furniture (8): table, chair, bed, wardrobe, sofa, TV, lamp, fridge", "Toys (~14): ball, car, doll, plane, kite, bike, balloon, train, blocks", "Belongings (3): phone, computer, camera"])
unit_block("Unit 9 — My Favourites",
           ["Playground actions (Present Continuous)", "I like + V-ing"],
           ["Actions (~9): catching, throwing, hitting, kicking, dancing, singing, jumping, running", "Playground (3): hopscotch, tag, hide and seek", "Environment (5): clean, dirty, recycle, save, protect"])

# ==================== 4. SINIF ====================
doc.add_page_break()
h("4. SINIF — Yıllık Plan (A1)", 16, ACCENT_RGB, space_before=2)
para("Kaynak: KKTC MEB Temel Eğitim İngilizce Dersi Öğretim Programı — Year 4.", italic=True, size=9, color=GREY)

g4_weeks = [
    ("1", "15-19 Eyl", "Unit 1", "My School", "Present Continuous, there is/are, Can/May I", "School, classroom, subjects, weekdays, numbers 11-100"),
    ("2", "22-26 Eyl", "Unit 1", "My School", "Possessive adjectives, ’s, Wh-questions", "Shapes, maths words, classroom activities"),
    ("3", "29 Eyl-3 Eki", "Unit 1", "My School", "Pekiştirme: school day activities, timetable", "Tüm Unit 1 kelimeleri"),
    ("4", "06-10 Eki", "Unit 2", "Games and Sports", "like/love + V-ing, have got/has got", "Sports, outdoor activities, body parts, instruments"),
    ("5", "13-17 Eki", "Unit 2", "Games and Sports", "“What do you like doing?” / “I like playing football.”", "basketball, volleyball, football, swimming, jogging"),
    ("6", "20-24 Eki", "Unit 2", "Games and Sports", "Pekiştirme: “My Favourite Sport” sunum", "Playground equipment, verbs"),
    ("7", "27-31 Eki", "Quiz 1", "Unit 1-2", "Quiz + geri bildirim  ⚠️ 29 Ekim", "—"),
    ("8", "03-07 Kas", "Unit 3", "My House", "Family/relatives, house objects", "Rooms, furniture, family members"),
    ("9", "10-14 Kas", "Unit 3", "My House", "“There is a bed in the bedroom.” / adjectives", "old/new/big/small"),
    ("10", "17-21 Kas", "Unit 3", "My House", "Pekiştirme: “My House” çizim + etiketleme", "Tüm house vocabulary"),
    ("11", "24-28 Kas", "Unit 4", "My Hometown", "Places in town, landmarks", "bank, cinema, post office, hospital, park"),
    ("12", "01-05 Ara", "Unit 4", "My Hometown", "Means of transport, directions", "bike, bus, car, train, left, right, cross"),
    ("13", "08-12 Ara", "Unit 4", "My Hometown", "KKTC landmarks (Salamis, St. Hilarion, Great Inn)", "Local + international landmarks"),
    ("14", "15-19 Ara", "Quiz 2 + Dönem Sonu", "Unit 1-4", "Quiz 2 + Dönem 1 sınavı", "—"),
    ("15", "05-09 Oca", "Unit 5", "Jobs and Occupations", "Jobs vocabulary, related verbs", "doctor, teacher, pilot, chef, vet, firefighter, farmer"),
    ("16", "12-16 Oca", "Unit 5", "Jobs and Occupations", "“He is a doctor. He helps people.”", "grow, help, protect, cook, sing, write, teach"),
    ("17", "19-23 Oca", "Unit 5", "Jobs and Occupations", "“What do you want to be?” / pekiştirme", "Areas of interest, ill, tractor"),
    ("18", "26-30 Oca", "Unit 6", "Daily Life", "Daily activities, time expressions", "get up, brush teeth, get dressed, eat, go to school"),
    ("19", "02-06 Şub", "Unit 6", "Daily Life", "“I get up at 7 o’clock.” / early/late/on time", "o’clock, midday, midnight, in the afternoon"),
    ("20", "09-13 Şub", "Unit 6", "Daily Life", "History of clocks, opinion expressions, pekiştirme", "sand, sundial, hourglass, water clock"),
    ("21", "16-20 Şub", "Unit 7", "Food and Meals", "Fruit, vegetables, food, drinks", "apple, banana, orange, meat, bread, water, milk, tea"),
    ("22", "23-27 Şub", "Unit 7", "Food and Meals", "Local meals, countries & nationalities", "kebab, molehiya, ayran, healthy/unhealthy"),
    ("23", "09-13 Mar", "Quiz 3", "Unit 5-7", "Quiz 3 + geri bildirim", "—"),
    ("24", "16-20 Mar", "Unit 7", "Food and Meals", "“What people eat around the world”, pekiştirme", "Mexico, Italy, China, Turkey, Cyprus"),
    ("25", "23-27 Mar", "Unit 8", "Animals", "Animals + habitats", "cheetah, crocodile, hippo, kangaroo, monkey, polar bear"),
    ("26", "30 Mar-3 Nis", "Unit 8", "Animals", "“Cheetahs can run fast.” / adjectives", "desert, forest, jungle, ocean, river, lake, farm"),
    ("27", "06-10 Nis", "Unit 8", "Animals", "Pekiştirme: “My Favourite Animal” sunum", "amazing, great, beautiful, strong, clever, wild, domestic"),
    ("28", "13-17 Nis", "Unit 9", "Festivals and Celebrations", "Seasons, months, weather", "Spring, Summer, Autumn, Winter, January-December"),
    ("29", "20-24 Nis", "Unit 9", "Festivals and Celebrations", "Clothes, seasonal activities  ⚠️ 23 Nisan", "sunny, windy, rainy, snowy, coat, scarf, umbrella"),
    ("30", "27 Nis-1 May", "Quiz 4", "Unit 7-9", "Quiz 4 + geri bildirim", "—"),
    ("31", "04-08 May", "Review", "Unit 1-4", "Dönem 1 tekrarı (school, sports, house, hometown)", "—"),
    ("32", "11-15 May", "Review", "Unit 5-9", "Dönem 2 tekrarı (jobs, daily life, food, animals, festivals)", "—"),
    ("33", "18-22 May", "Review", "Tüm üniteler", "Sınav hazırlığı  ⚠️ 19 Mayıs", "—"),
    ("34", "25-29 May", "Yıl Sonu Sınavı", "Unit 1-9", "Yıl sonu sınavı (dört beceri)", "—"),
    ("35", "01-05 Haz", "Portfolio", "—", "Portfolio sunumları + “My English Book”", "—"),
    ("36", "08-12 Haz", "Portfolio", "—", "İngilizce oyunları, şarkılar, drama", "—"),
    ("37", "15-19 Haz", "Wrap-up", "—", "Yıl sonu etkinlikleri, sınıf partisi", "—"),
    ("38", "22-26 Haz", "Wrap-up", "—", "Son hafta: oyun günü, sertifika dağıtımı", "—"),
    ("39", "29 Haz-3 Tem", "Wrap-up", "—", "Buffer / makeup günleri", "—"),
]
mktable(["Hf", "Tarih", "Ünite", "Konu", "Grammar / Odak", "Kelime"], g4_weeks, widths=[0.9, 2.2, 2.6, 3.2, 10.5, 7.6], fs=8.5)

h("4. Sınıf — Ünite Detayları (Unit 1-9)", 13, INK, space_before=12)
unit_block("Unit 1 — My School",
           ["Present Continuous Tense (affirmative/interrogative)", "Wh-questions: What is she doing?", "Can I … , please? / May I …? (asking for permission)", "Singular/Plural nouns", "There is/are (affirmative, interrogative)", "Preposition of time: on", "Personal pronouns: I, you, we, they, he, she, it", "Possessive adjectives: my, your, his, her, our, their, its", "Possessive ’s", "Wh-questions: What, Whose, How many"],
           ["School", "School subjects", "Classroom objects", "Week days", "Classroom activities", "Maths words", "Numbers 11-100"])
unit_block("Unit 2 — Games and Sports",
           ["What do/does …?", "like/love + V-ing", "have got / has got", "Present Simple (temel)"],
           ["Sports: basketball, volleyball, football, swimming, jogging, tennis", "Outdoor activities", "Body parts (temel)", "Instruments: guitar, piano, drum, violin, flute"])
unit_block("Unit 3 — My House",
           ["There is/are (pekiştirme)", "Adjectives: old, new, big, small", "Family/relatives"],
           ["Rooms: bedroom, bathroom, kitchen, living room, garage, garden, hall", "Furniture: bed, table, chair, sofa, wardrobe, bookshelf, desk, lamp, mirror", "Family members: mother, father, brother, sister, grandparents, aunt, uncle, cousin"])
unit_block("Unit 4 — My Hometown",
           ["Places in town tanıtımı", "Directions: left, right, turn, cross, go straight", "Means of transport"],
           ["Places (~13): bank, cinema, post office, hospital, park, market, school, restaurant, museum", "Landmarks (KKTC + dünya): Salamis, St. Hilarion, Great Inn, Eiffel Tower", "Transport: bike, bus, car, train, plane, boat"])
unit_block("Unit 5 — Jobs and Occupations",
           ["“He is a doctor. He helps people.”", "What do you want to be?", "do/does soruları"],
           ["Jobs (~19): doctor, teacher, pilot, chef, vet, firefighter, farmer, nurse, police officer, engineer, dentist, driver", "Verbs (~9): grow, help, protect, cook, sing, write, teach, fix, drive"])
unit_block("Unit 6 — Daily Life",
           ["Present Simple (rutinler)", "Time expressions: at 7 o’clock, early, late, on time", "Opinion expressions"],
           ["Daily verbs (~16): get up, brush teeth, get dressed, eat, go to school, do homework, play, read, sleep", "Time words (8): o’clock, midday, midnight, morning, afternoon, evening, night", "History of clocks: sand, sundial, hourglass, water clock"])
unit_block("Unit 7 — Food and Meals",
           ["Food/drink vocabulary", "Local meals & countries/nationalities", "Healthy/unhealthy"],
           ["Food (~40+): apple, banana, orange, meat, bread, water, milk, tea, cheese, egg, rice", "Local meals: kebab, molehiya, ayran, hellim", "Countries (5): Mexico, Italy, China, Turkey, Cyprus"])
unit_block("Unit 8 — Animals",
           ["“Cheetahs can run fast.” (can — yetenek)", "Adjectives: strong, clever, wild, domestic"],
           ["Animals (~28): cheetah, crocodile, hippo, kangaroo, monkey, polar bear, lion, elephant, snake", "Habitats (~9): desert, forest, jungle, ocean, river, lake, farm, mountain, polar region", "Adjectives (~11): amazing, great, beautiful, strong, clever, wild, domestic"])
unit_block("Unit 9 — Festivals and Celebrations",
           ["Seasons, months, weather", "Clothes & seasonal activities", "Present Simple (genel)"],
           ["Seasons (4): spring, summer, autumn, winter", "Months (12): January-December", "Weather (8): sunny, windy, rainy, snowy, cloudy, hot, cold, warm", "Clothes (10): coat, scarf, umbrella, jacket, boots, gloves, hat"])

# ==================== 5. SINIF ====================
doc.add_page_break()
h("5. SINIF — Yıllık Plan (A1-A2)", 16, ACCENT_RGB, space_before=2)
para("Kaynak: KKTC MEB Temel Eğitim İngilizce Dersi Öğretim Programı — Year 5.", italic=True, size=9, color=GREY)

g5_weeks = [
    ("1", "15-19 Eyl", "Unit 1", "My Day", "Present Simple (to be), object pronouns, before/after", "Daily routines, times, body parts"),
    ("2", "22-26 Eyl", "Unit 1", "My Day", "“I wake up at 7 o’clock.” / “She helps me.”", "Times, body parts (detaylı)"),
    ("3", "29 Eyl-3 Eki", "Unit 1", "My Day", "Pekiştirme: robot projesi, “Keep it Clean” posteri", "Tüm Unit 1 kelimeleri"),
    ("4", "06-10 Eki", "Unit 2", "People and Jobs", "Present Simple (tüm formlar), prepositions of place (at/in/on), have to/has to", "Jobs, places, family members"),
    ("5", "13-17 Eki", "Unit 2", "People and Jobs", "“She is a doctor. She works at a hospital.”", "Jobs (30+), places (20+)"),
    ("6", "20-24 Eki", "Unit 2", "People and Jobs", "“He has to wear a uniform.” / family tree", "Workplace, pocket money"),
    ("7", "27-31 Eki", "Quiz 1", "Unit 1-2", "Quiz + geri bildirim  ⚠️ 29 Ekim", "—"),
    ("8", "03-07 Kas", "Unit 3", "Works at Home", "Adverbs of frequency, Wh-questions (What/When/Whose), have to/has to", "Chores, furniture, days of week, money"),
    ("9", "10-14 Kas", "Unit 3", "Works at Home", "“I always make my bed.” / “What do you do on Monday?”", "always, usually, often, sometimes, never"),
    ("10", "17-21 Kas", "Unit 3", "Works at Home", "Pekiştirme: “Chores Chart”, furniture etiketleme", "Tüm chores + furniture"),
    ("11", "24-28 Kas", "Unit 4", "Amazing Animals", "Can/can’t (ability), Wh-questions (Who/What/Which/How/Why/Where), because", "Animals (40+), habitats, numbers 1-1000"),
    ("12", "01-05 Ara", "Unit 4", "Amazing Animals", "“Cheetahs can run fast.” / “Why do snakes shed their skin?”", "desert, forest, jungle, ocean, river, lake"),
    ("13", "08-12 Ara", "Unit 4", "Amazing Animals", "Physical complaints: headache, tummy ache, toothache, cut, cough", "Illness vocabulary, because"),
    ("14", "15-19 Ara", "Quiz 2 + Dönem Sonu", "Unit 1-4", "Quiz 2 + Dönem 1 sınavı (Unit 1-4)", "—"),
    ("15", "05-09 Oca", "Unit 5", "Weather", "Past Simple (was/were), comparatives", "Months, seasons, clothes, compass points"),
    ("16", "12-16 Oca", "Unit 5", "Weather", "“It was sunny yesterday.” / “Today is colder than yesterday.”", "Weather words, flora/fauna"),
    ("17", "19-23 Oca", "Unit 5", "Weather", "“What did you wear in winter?” / pekiştirme", "Tüm weather + clothes + seasons"),
    ("18", "26-30 Oca", "Unit 6", "Our Senses", "How does it taste/smell/look/feel?, like + Noun/Gerund, linkers (and/but/or)", "Senses verbs, food, adjectives, prices"),
    ("19", "02-06 Şub", "Unit 6", "Our Senses", "“It tastes sweet.” / “I like swimming but I don’t like running.”", "delicious, awful, horrible, lovely, sweet"),
    ("20", "09-13 Şub", "Unit 6", "Our Senses", "Tenses for likes/dislikes, telling prices, pekiştirme", "Food (30+), adjectives (15+)"),
    ("21", "16-20 Şub", "Unit 7", "Eating Out", "There is/are, some/any/a lot of, countable/uncountable", "Food quantities, main meals, menus"),
    ("22", "23-27 Şub", "Unit 7", "Eating Out", "“Is there any rice?” / “There are a lot of tomatoes.”", "bread, cereal, cheese, egg, spaghetti, rice, meat"),
    ("23", "09-13 Mar", "Quiz 3", "Unit 5-7", "Quiz 3 (Unit 5-7) + geri bildirim", "—"),
    ("24", "16-20 Mar", "Unit 7", "Eating Out", "“How much is it?” / restoran diyalogları, pekiştirme", "Menu, quantities, prices"),
    ("25", "23-27 Mar", "Unit 8", "Healthy Life", "Past Simple (was/were), enough", "Healthy/unhealthy, main meals, games & sports"),
    ("26", "30 Mar-3 Nis", "Unit 8", "Healthy Life", "“I was tired yesterday.” / “I don’t get enough sleep.”", "calorie, exercise, breakfast, habits"),
    ("27", "06-10 Nis", "Unit 8", "Healthy Life", "Sports vocabulary, pekiştirme: “Healthy Living Wheel”", "football, cycling, tennis, swimming, jogging"),
    ("28", "13-17 Nis", "Unit 9", "Places to Visit", "Past Simple (regular & irregular: went/saw/ate/had/was/got), linkers (and/but/or)", "Places, art vocabulary, countries"),
    ("29", "20-24 Nis", "Unit 9", "Places to Visit", "“We went to the museum.” / “I saw a painting.”  ⚠️ 23 Nisan", "theatre, circus, zoo, library, museum, gallery"),
    ("30", "27 Nis-1 May", "Quiz 4", "Unit 7-9", "Quiz 4 (Unit 7-9) + geri bildirim", "—"),
    ("31", "04-08 May", "Review", "Unit 1-4", "Dönem 1 tekrarı (My Day, People & Jobs, Works at Home, Animals)", "—"),
    ("32", "11-15 May", "Review", "Unit 5-9", "Dönem 2 tekrarı (Weather, Senses, Eating Out, Healthy Life, Places)", "—"),
    ("33", "18-22 May", "Review", "Tüm üniteler", "Sınav hazırlığı: tüm grammar + vocabulary  ⚠️ 19 Mayıs", "—"),
    ("34", "25-29 May", "Yıl Sonu Sınavı", "Unit 1-9", "Yıl sonu sınavı (dört beceri)", "—"),
    ("35", "01-05 Haz", "Portfolio", "—", "Portfolio sunumları + “My English Book”", "—"),
    ("36", "08-12 Haz", "Portfolio", "—", "İngilizce oyunları, şarkılar, drama", "—"),
    ("37", "15-19 Haz", "Wrap-up", "—", "Yıl sonu etkinlikleri, sınıf partisi", "—"),
    ("38", "22-26 Haz", "Wrap-up", "—", "Son hafta: oyun günü, sertifika dağıtımı", "—"),
    ("39", "29 Haz-3 Tem", "Wrap-up", "—", "Buffer / makeup günleri", "—"),
]
mktable(["Hf", "Tarih", "Ünite", "Konu", "Grammar / Odak", "Kelime"], g5_weeks, widths=[0.9, 2.2, 2.6, 3.2, 10.5, 7.6], fs=8.5)

h("5. Sınıf — Ünite Detayları (Unit 1-9)", 13, INK, space_before=12)
unit_block("Unit 1 — My Day",
           ["Present Simple — to be (am/is/are): olumlu, olumsuz, soru, kısa cevap", "Object pronouns: me, you, him, her, it, us, them", "Prepositions of time: at (saat), on (gün), in (ay/mevsim/yıl)", "Before / After"],
           ["Daily routines: wake up, get up, brush teeth, wash face, have breakfast, go to school, have lunch, do homework, go to bed", "Times: o’clock, half past, quarter past, quarter to, a.m., p.m.", "Body parts: head, hair, face, eyes, ears, nose, mouth, teeth, arms, hands, legs, feet, shoulders, knees"])
unit_block("Unit 2 — People and Jobs",
           ["Present Simple — full verbs: olumlu (he/she/it + s), olumsuz (don’t/doesn’t + V1), soru (Do/Does + özne + V1)", "Prepositions of place: at, in, on", "Have to / Has to (zorunluluk)"],
           ["Jobs: teacher, doctor, nurse, police officer, firefighter, engineer, chef, pilot, dentist, mechanic, vet, farmer", "Places: school, hospital, police station, fire station, restaurant, airport, farm, office, factory, garage", "Family members: father, mother, brother, sister, grandfather, grandmother, uncle, aunt, cousin, nephew, niece"])
unit_block("Unit 3 — Works at Home",
           ["Adverbs of frequency: always, usually, sometimes, rarely, never", "Adjective + noun combinations: a big house, a red car", "Wh-questions: What? When? Whose?", "Have to / Has to — pekiştirme"],
           ["Chores: wash the dishes, make the bed, tidy the room, vacuum, iron, sweep", "Furniture: table, chair, sofa, bed, wardrobe, bookshelf, desk, lamp", "Days of week: Monday–Sunday", "Money: coin, note, pay, cost, change, price, expensive, cheap"])
unit_block("Unit 4 — Amazing Animals",
           ["Can / Can’t (yetenek): can + V1", "Wh-questions: Who? What? Which? How? Why? Where?", "Common & irregular nouns: man→men, woman→women, child→children, foot→feet, tooth→teeth, mouse→mice", "Linker: because"],
           ["Animals: lion, tiger, elephant, monkey, snake, bird, fish, bear, rabbit", "Habitats: forest, desert, ocean, mountain, jungle, river, polar region", "Landmarks: Eiffel Tower, Big Ben, Statue of Liberty, Pyramids, Colosseum", "Numbers 1-1000"])
unit_block("Unit 5 — Weather",
           ["Past Simple — to be (was/were): olumlu, olumsuz (wasn’t/weren’t), soru, kısa cevap", "Comparatives: tall→taller, big→bigger, hot→hotter; beautiful→more beautiful; good→better, bad→worse; … than"],
           ["Months: January–December", "Seasons: spring, summer, autumn (fall), winter", "Clothes: shirt, trousers, dress, skirt, jacket, coat, hat, shoes, socks, gloves, scarf", "Points of the compass: north, south, east, west, northeast, northwest, southeast, southwest", "Weather: sunny, rainy, cloudy, snowy, windy, stormy, foggy, hot, cold, warm"])
unit_block("Unit 6 — Our Senses",
           ["How does it taste/smell/look/feel? — It tastes sweet.", "Adjectives of state: hungry, thirsty, tired, cold, sad, happy", "Like + Noun / Gerund: I like pizza. / I like swimming.", "Linkers: and, but, or"],
           ["Senses (verbs): taste, smell, look, feel, sound, hear, see", "Food: bread, cheese, rice, pasta, meat, chicken, fish, egg, soup", "Vegetables: tomato, potato, carrot, onion, pepper, lettuce, cucumber", "Drinks: water, milk, juice, tea, coffee, lemonade", "State (adjectives): hungry, thirsty, tired, cold, sad, happy, angry, bored", "Telling prices: cost, pay, add"])
unit_block("Unit 7 — Eating Out",
           ["Expressing quantity: How much (uncountable) / How many (countable)", "There is / There are: tekil/çoğul; soru; olumsuz", "Some / any / a lot of", "Countable & uncountable nouns"],
           ["Food: bread, cheese, rice, pasta, meat, chicken, fish, soup, salad, sandwich", "Main meals: breakfast, lunch, dinner, supper, snack, dessert", "Quantities of food: a kilo of rice, a bottle of water, a piece of cake, a glass of milk"])
unit_block("Unit 8 — Healthy Life",
           ["Past Simple — to be (was/were) — pekiştirme", "Enough: adjective + enough / enough + noun"],
           ["Meals: breakfast, lunch, dinner, supper", "Habits (verbs): brush teeth, make bed, wash face, comb hair, get dressed, have breakfast", "Games: chess, checkers, dominoes, cards, hide and seek, tag", "Sports: football, basketball, tennis, swimming, running, volleyball, cycling"])
unit_block("Unit 9 — Places to Visit",
           ["Past Simple — regular (+ed): walk→walked, play→played; stop→stopped, study→studied", "Past Simple — irregular: go→went, see→saw, eat→ate, have→had, be→was/were, get→got", "Olumsuz/soru: didn’t + V1 / Did + özne + V1", "Linkers: and, but, or (pekiştirme)"],
           ["Places: park, museum, library, cinema, theatre, zoo, beach, market, hospital, school, restaurant", "Art: painting, drawing, sculpture, photograph", "Art adjectives: beautiful, boring, colourful, funny, interesting, scary, strange, ugly, amazing"])

# ==================== OZET ====================
doc.add_page_break()
h("Özet — Ünite / Hafta Dağılımı (Tüm Sınıflar)", 15, ACCENT_RGB, space_before=2)
mktable(
    ["Bölüm", "2. Sınıf", "3. Sınıf", "4. Sınıf", "5. Sınıf"],
    [
        ("Unit 1", "Hafta 1-3", "Hafta 1-3", "Hafta 1-3", "Hafta 1-3"),
        ("Quiz 1", "Hafta 7", "Hafta 7", "Hafta 7", "Hafta 7"),
        ("Unit 2", "Hafta 4-6", "Hafta 4-6", "Hafta 4-6", "Hafta 4-6"),
        ("Unit 3", "Hafta 8-10", "Hafta 8-10", "Hafta 8-10", "Hafta 8-10"),
        ("Unit 4", "Hafta 11-13", "Hafta 11-13", "Hafta 11-13", "Hafta 11-13"),
        ("Quiz 2 + Dönem Sonu", "Hafta 14", "Hafta 14", "Hafta 14", "Hafta 14"),
        ("Unit 5", "Hafta 15-17", "Hafta 15-17", "Hafta 15-17", "Hafta 15-17"),
        ("Unit 6", "Hafta 18-20", "Hafta 18-20", "Hafta 18-20", "Hafta 18-20"),
        ("Unit 7", "Hafta 21-22", "Hafta 21-22, 24", "Hafta 21-22, 24", "Hafta 21-22, 24"),
        ("Quiz 3", "Hafta 23", "Hafta 23", "Hafta 23", "Hafta 23"),
        ("Unit 8", "Hafta 24-26", "Hafta 25-27", "Hafta 25-27", "Hafta 25-27"),
        ("Unit 9", "Hafta 27-29", "Hafta 28-29", "Hafta 28-29", "Hafta 28-29"),
        ("Quiz 4", "Hafta 30", "Hafta 30", "Hafta 30", "Hafta 30"),
        ("Review", "Hafta 31-33", "Hafta 31-33", "Hafta 31-33", "Hafta 31-33"),
        ("Yıl Sonu Sınavı", "Hafta 34", "Hafta 34", "Hafta 34", "Hafta 34"),
        ("Portfolio + Wrap-up", "Hafta 35-39", "Hafta 35-39", "Hafta 35-39", "Hafta 35-39"),
    ],
    widths=[6.4, 5.1, 5.1, 5.1, 5.1],
    fs=8.5,
)

h("Ünite İsimleri — Karşılaştırma", 13, INK, space_before=8)
mktable(
    ["#", "2. Sınıf (Pre-A1)", "3. Sınıf (A1)", "4. Sınıf (A1)", "5. Sınıf (A1-A2)"],
    [
        ("1", "Hello English!", "My Classroom", "My School", "My Day"),
        ("2", "My Classroom", "My Family and Friends", "Games and Sports", "People and Jobs"),
        ("3", "My Family", "Body and Appearance", "My House", "Works at Home"),
        ("4", "My Body", "Colours and Clothes", "My Hometown", "Amazing Animals"),
        ("5", "Colours & Clothes", "My Home", "Jobs and Occupations", "Weather"),
        ("6", "My Home", "Animals", "Daily Life", "Our Senses"),
        ("7", "Animals", "Food", "Food and Meals", "Eating Out"),
        ("8", "Food", "My Friends", "Animals", "Healthy Life"),
        ("9", "Toys & Games", "My Favourites", "Festivals and Celebrations", "Places to Visit"),
    ],
    widths=[1.2, 6.1, 6.1, 6.1, 6.1],
    fs=8.5,
)

h("Notlar", 13, INK, space_before=8)
for n in [
    "Her ünite ~3 hafta: ilk haftalar yeni içerik, son hafta pekiştirme.",
    "Quiz 1 (Unit 1-2), Quiz 2 (Unit 3-4), Quiz 3 (Unit 5-7), Quiz 4 (Unit 7-9).",
    "Dönem Sonu Sınavı: Hafta 14 (Unit 1-4) — dört beceri (listening/reading/speaking/writing).",
    "Yıl Sonu Sınavı: Hafta 34 (Unit 1-9) — dört beceri.",
    "Portfolio Dossier: MEB programında her ünite için önerilir.",
    "29 Ekim, 23 Nisan, 19 Mayıs haftaları 4 gün eğitim; quiz/pekiştirme haftasına denk getirildi.",
    "Hafta 35-39: Portfolio sunumları, drama, şarkı, oyun — sınav stresi sonrası rahatlatma.",
    "2. sınıf: MEB PDF'inde yok; Year 3 “Preliminary Work” + A0/Pre-A1 supplementary olarak hazırlanmıştır.",
]:
    bp = doc.add_paragraph(style="List Bullet")
    rr = bp.add_run(n)
    rr.font.size = Pt(9.5)
    bp.paragraph_format.space_after = Pt(1)

p = doc.add_paragraph()
p.paragraph_format.space_before = Pt(4)
r = p.add_run("* Kaynak: KKTC MEB Temel Eğitim İngilizce Dersi Öğretim Programı · Hazırlık: Serdarlı İlkokulu · Niyazi Çoban")
r.italic = True
r.font.size = Pt(9)
r.font.color.rgb = GREY

out = "/root/Akademik/İngilizce/Tum_Siniflar_Ingilizce_Yillik_Mufredat_2026-2027.docx"
doc.save(out)
print("saved:", out)
print("paras:", len(doc.paragraphs), "tables:", len(doc.tables))
