#!/usr/bin/env python3
"""Nieuwsbrief-artikel Kabinetswissel 110AN — v1.0
Generates a short, inspiring article (300-400 words) for the district newsletter."""

import os
from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml

OUT_DIR = os.path.dirname(os.path.abspath(__file__))
OUT_FILE = os.path.join(OUT_DIR, "nieuwsbrief-artikel-kabinetswissel-110AN_v1.0.docx")

NAVY = RGBColor(0x00, 0x33, 0x66)
GOLD = RGBColor(0xF5, 0x9E, 0x0B)
GREEN = RGBColor(0x00, 0xA8, 0x59)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)

def set_run_font(run, name="Calibri", size=11, color=None, bold=False, italic=False):
    run.font.name = name
    run.font.size = Pt(size)
    if color:
        run.font.color.rgb = color
    run.bold = bold
    run.italic = italic
    rpr = run._element.get_or_add_rPr()
    from docx.oxml.ns import qn
    rFonts = rpr.find(qn('w:rFonts'))
    if rFonts is None:
        rFonts = parse_xml(f'<w:rFonts {nsdecls("w")} w:ascii="{name}" w:hAnsi="{name}"/>')
        rpr.insert(0, rFonts)

def main():
    try:
        doc = Document()
        for section in doc.sections:
            section.top_margin = Cm(2.5)
            section.bottom_margin = Cm(2.5)
            section.left_margin = Cm(2.5)
            section.right_margin = Cm(2.5)

        # ── Header banner ──
        banner = doc.add_table(rows=1, cols=1)
        banner.alignment = WD_ALIGN_PARAGRAPH.CENTER
        cell = banner.cell(0, 0)
        from docx.oxml.ns import qn
        shading = parse_xml(f'<w:shd {nsdecls("w")} w:fill="003366"/>')
        cell._tc.get_or_add_tcPr().append(shading)

        p = cell.paragraphs[0]
        p.alignment = WD_ALIGN_PARAGRAPH.CENTER
        p.paragraph_format.space_before = Pt(16)
        p.paragraph_format.space_after = Pt(16)
        run = p.add_run("DISTRICTSNIEUWSBRIEF — AUGUSTUS 2026")
        set_run_font(run, "Calibri", 14, GOLD, bold=True)

        # ── Title ──
        p = doc.add_paragraph()
        p.alignment = WD_ALIGN_PARAGRAPH.LEFT
        p.paragraph_format.space_before = Pt(20)
        p.paragraph_format.space_after = Pt(4)
        run = p.add_run("Kabinet 110AN van start: Samen Verder Bouwen bij Papa's Beach House")
        set_run_font(run, "Calibri", 16, NAVY, bold=True)

        # ── Lead ──
        p = doc.add_paragraph()
        p.paragraph_format.space_after = Pt(8)
        run = p.add_run(
            "Op zaterdag 15 augustus 2026 kwam het nieuwe kabinet van District 110AN voor het eerst "
            "bijeen op de unieke locatie van Papa's Beach House in het Haarlemmermeerse Bos te Hoofddorp. "
            "Onder een stralende zomerse zon opende Districtsgouverneur Jorick van Gemert het nieuwe "
            "Lionsjaar met een krachtig programma rondom drie pijlers."
        )
        set_run_font(run, "Calibri", 11)

        # ── Pijler 1: Lions 75 jaar ──
        p = doc.add_paragraph()
        p.paragraph_format.space_before = Pt(8)
        p.paragraph_format.space_after = Pt(6)
        run = p.add_run("75 jaar Lions Nederland")
        set_run_font(run, "Calibri", 12, GOLD, bold=True)

        p = doc.add_paragraph()
        p.paragraph_format.space_after = Pt(8)
        run = p.add_run(
            "IPDG Pieter Haex nam het kabinet mee in de rijke historie van Lions in Nederland. "
            "75 jaar dienstbaarheid, van lokale clubprojecten tot internationale LCIF-initiatieven. "
            "De landelijke campagne 'Lions Vertellen' werd gepresenteerd als motor voor vergroting "
            "van de naamsbekendheid in het lustrumjaar."
        )
        set_run_font(run, "Calibri", 11)

        # ── Pijler 2: Alzheimer NL ──
        p = doc.add_paragraph()
        p.paragraph_format.space_before = Pt(8)
        p.paragraph_format.space_after = Pt(6)
        run = p.add_run("Stichting Alzheimer Nederland")
        set_run_font(run, "Calibri", 12, GOLD, bold=True)

        p = doc.add_paragraph()
        p.paragraph_format.space_after = Pt(8)
        run = p.add_run(
            "GST-coördinator Hans Luijcx presenteerde het ambitieuze doel: €40.000 ophalen voor "
            "Voetbalherinneringen en Dementievriendelijke Ruimten. Per zone minimaal één project "
            "van elk. Een vertegenwoordiger van Alzheimer Nederland lichtte het belang van deze "
            "samenwerking toe — concreet en dichtbij de clubs."
        )
        set_run_font(run, "Calibri", 11)

        # ── Pijler 3: Samen Verder Bouwen ──
        p = doc.add_paragraph()
        p.paragraph_format.space_before = Pt(8)
        p.paragraph_format.space_after = Pt(6)
        run = p.add_run("Samen Verder Bouwen")
        set_run_font(run, "Calibri", 12, GOLD, bold=True)

        p = doc.add_paragraph()
        p.paragraph_format.space_after = Pt(8)
        run = p.add_run(
            "Het hart van de dag: de visiepresentatie van DG Jorick van Gemert. Drie bouwniveaus "
            "vormden de rode draad — Clubs via Mission 1.5 versterken, Impact en Zichtbaarheid "
            "via Lions Helpen vergroten, en de Organisatie innoveren op het vlak van ICT. "
            "De boodschap was helder: bouwen we samen, of ieder voor zich."
        )
        set_run_font(run, "Calibri", 11)

        # ── Quote placeholder ──
        p = doc.add_paragraph()
        p.alignment = WD_ALIGN_PARAGRAPH.CENTER
        p.paragraph_format.space_before = Pt(12)
        p.paragraph_format.space_after = Pt(12)
        p.paragraph_format.left_indent = Cm(2)
        p.paragraph_format.right_indent = Cm(2)
        run = p.add_run(
            '"Dit kabinet staat voor verbinding. Niet alleen binnen ons team, '
            'maar met elke club in het district. Samen Verder Bouwen is geen slogan — '
            'het is onze werkwijze."'
        )
        set_run_font(run, "Calibri", 11, NAVY, italic=True)

        p = doc.add_paragraph()
        p.alignment = WD_ALIGN_PARAGRAPH.CENTER
        p.paragraph_format.space_after = Pt(12)
        run = p.add_run("— DG Jorick van Gemert")
        set_run_font(run, "Calibri", 10, GOLD, bold=True)

        # ── CTA ──
        p = doc.add_paragraph()
        p.paragraph_format.space_after = Pt(8)
        run = p.add_run(
            "Volg het District 110AN via onze website en social media voor updates, "
            "verslagen en foto's van het komende Lionsjaar."
        )
        set_run_font(run, "Calibri", 11)

        # ── Photo credit ──
        p = doc.add_paragraph()
        p.paragraph_format.space_before = Pt(8)
        run = p.add_run("Fotocredit: [naam fotograaf / Lions 110AN]")
        set_run_font(run, "Calibri", 9, RGBColor(0x99, 0x99, 0x99), italic=True)

        doc.save(OUT_FILE)
        print(f"✅ Nieuwsbrief-artikel opgeslagen: {OUT_FILE}")
        return True

    except Exception as e:
        print(f"❌ Fout bij genereren nieuwsbrief-artikel: {e}")
        return False

if __name__ == "__main__":
    main()
