#!/usr/bin/env python3
"""
Spreekteksten Kabinetswissel District 110AN — Samen Verder Bouwen
v1.0 | 18 april 2026
"""

import sys
from docx import Document
from docx.shared import Pt, Inches, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT

PRIMARY   = RGBColor(0x00, 0x33, 0x66)
ACCENT    = RGBColor(0xF5, 0x9E, 0x0B)
SECONDARY = RGBColor(0x00, 0xA8, 0x59)
DARK_TEXT  = RGBColor(0x1E, 0x29, 0x3B)

doc = Document()

# ── Stijlen ──
style = doc.styles['Normal']
font = style.font
font.name = 'Calibri'
font.size = Pt(11)
font.color.rgb = DARK_TEXT

# ── Functies ──
def add_title(text):
    h = doc.add_heading(text, level=1)
    for run in h.runs:
        run.font.color.rgb = PRIMARY
        run.font.name = 'Calibri'

def add_subtitle(text):
    h = doc.add_heading(text, level=2)
    for run in h.runs:
        run.font.color.rgb = ACCENT
        run.font.name = 'Calibri'

def add_speech(title, speaker, duration, core_message, tips, paragraphs):
    """Voegt een complete spreektekst toe."""
    # Header tabel
    table = doc.add_table(rows=2, cols=2)
    table.style = 'Table Grid'
    table.alignment = WD_TABLE_ALIGNMENT.CENTER
    # Rij 1
    table.cell(0, 0).text = f"Spreker: {speaker}"
    table.cell(0, 1).text = f"Duur: ~{duration}"
    # Rij 2
    table.cell(1, 0).text = f"Kernboodschap: {core_message}"
    table.cell(1, 1).text = ""
    # Styling
    for row in table.rows:
        for cell in row.cells:
            for p in cell.paragraphs:
                for run in p.runs:
                    run.font.size = Pt(10)
                    run.font.name = 'Calibri'
                    run.font.bold = True
                    run.font.color.rgb = PRIMARY
    doc.add_paragraph("")  # Spatie

    # Tips
    tip_p = doc.add_paragraph()
    tip_run = tip_p.add_run("💡 Tips voor de spreker: ")
    tip_run.bold = True
    tip_run.font.size = Pt(10)
    tip_run.font.color.rgb = SECONDARY
    tip_run2 = tip_p.add_run(tips)
    tip_run2.font.size = Pt(10)
    tip_run2.font.italic = True
    doc.add_paragraph("")

    # Scheidingslijn
    sep = doc.add_paragraph("─" * 70)
    sep.alignment = WD_ALIGN_PARAGRAPH.CENTER
    for run in sep.runs:
        run.font.color.rgb = ACCENT
        run.font.size = Pt(8)

    # Speech tekst
    doc.add_paragraph("")
    for para_text in paragraphs:
        p = doc.add_paragraph(para_text)
        p.paragraph_format.space_after = Pt(6)
        p.paragraph_format.line_spacing = Pt(16)
        for run in p.runs:
            run.font.size = Pt(11)
            run.font.name = 'Calibri'

    # Page break na elke speech
    doc.add_page_break()


# ══════════════════════════════════════════════════════════════
# TITELPAGINA
# ══════════════════════════════════════════════════════════════

# Titelblok
for _ in range(4):
    doc.add_paragraph("")

title_p = doc.add_paragraph()
title_p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title_p.add_run("LIONS CLUBS DISTRICT 110AN")
run.bold = True
run.font.size = Pt(14)
run.font.color.rgb = PRIMARY
run.font.name = 'Calibri'

doc.add_paragraph("")

main_p = doc.add_paragraph()
main_p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = main_p.add_run("Spreekteksten Kabinetswissel 2026-2027")
run.bold = True
run.font.size = Pt(24)
run.font.color.rgb = PRIMARY
run.font.name = 'Calibri'

sub_p = doc.add_paragraph()
sub_p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = sub_p.add_run("Samen Verder Bouwen")
run.font.size = Pt(18)
run.font.color.rgb = ACCENT
run.font.name = 'Calibri'

doc.add_paragraph("")

info_p = doc.add_paragraph()
info_p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = info_p.add_run("Zaterdag 15 augustus 2026\nPapa's Beach House, Haarlemmermeerse Bos, Hoofddorp")
run.font.size = Pt(12)
run.font.color.rgb = DARK_TEXT
run.font.name = 'Calibri'

doc.add_paragraph("")
doc.add_paragraph("")

conf_p = doc.add_paragraph()
conf_p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = conf_p.add_run("VERTROUWELIJK — Niet voor verspreiding buiten het kabinet")
run.font.size = Pt(10)
run.font.italic = True
run.font.color.rgb = RGBColor(0x99, 0x99, 0x99)

doc.add_page_break()


# ══════════════════════════════════════════════════════════════
# 1. OPENINGSSPEECH JORICK (~5 min)
# ══════════════════════════════════════════════════════════════

add_title("1. Openingsspeech — Districtsgouverneur Jorick van Gemert")

add_speech(
    title="Opening",
    speaker="Jorick van Gemert (DG)",
    duration="5 minuten",
    core_message="Vandaag markeren we het begin van een nieuw Lionsjaar — samen, met ambitie en verbinding.",
    tips="Start rustig, bouw op. Maak oogcontact met het publiek. Pauze na de dankwoord. Wees authentiek — dit is jouw moment.",
    paragraphs=[
        "Goedemorgen allemaal, welkom in het Haarlemmermeerse Bos. Wat een fantastische locatie is dit om het nieuwe Lionsjaar te openen. Ik zie veel vertrouwde gezichten en ook nieuwe — fijn dat jullie er allemaal zijn.",

        "Voordat we beginnen, wil ik twee woorden van dank uitspreken. Allereerst aan Arjan van Ommen, onze GET. Arjan, dank voor jouw begeleiding in de aanloop naar dit moment. Jouw ervaring als PDG is van onschatbare waarde voor dit kabinet. En dank aan alle leden van het vorige kabinet die het fundament hebben gelegd waarop wij vandaag voortbouwen.",

        "Per 1 juli ben ik officieel districtsgouverneur. Maar vandaag voelt pas als de echte start. Want vandaag staan we hier samen — het voltallige kabinet, onze zonevoorzitters, commissarissen en genodigden. Dit is het team dat het komende jaar het verschil gaat maken in District 110AN.",

        "Het thema van dit jaar is 'Samen Verder Bouwen'. En dat is geen loze belofte. We bouwen voort op wat er al is. We gaan niet alles overhoopgooien. We gaan wel de krachten bundelen, over de grenzen van onze eigen clubs heen kijken, en elkaar versterken.",

        "Vandaag staat in het teken van drie pijlers. Ten eerste: 75 jaar Lions in Nederland — een mijlpaal die we samen vieren. Ten tweede: Stichting Alzheimer Nederland, ons landelijke goede doel. En ten derde: onze visie voor het komende jaar, Samen Verder Bouwen.",

        "Maar voor we inhoudelijk aan de slag gaan, is er eerst een belangrijk symbolisch moment: de overdracht van de ambtsketen. Arjan, wil jij het woord nemen?",
    ]
)


# ══════════════════════════════════════════════════════════════
# 2. TOELICHTING LIONS 75 JAAR (~3 min)
# ══════════════════════════════════════════════════════════════

add_title("2. Toelichting Lions 75 Jaar")

add_speech(
    title="Lions 75 Jaar",
    speaker="IPDG Pieter Haex (of door te bepalen)",
    duration="3 minuten",
    core_message="75 jaar Lions in Nederland is niet alleen een jubileum — het is een oproep om onze impact te laten zien.",
    tips="Feitelijk blijven, energie overbrengen. Gebruik voorbeelden uit eigen ervaring. Verbind het verleden met de toekomst.",
    paragraphs=[
        "In 2026-2027 vieren we iets bijzonders: 75 jaar Lions in Nederland. Sinds de eerste Lions Club in 1951 is onze organisatie uitgegroeid tot een landelijk netwerk van betrokken mensen die maatschappelijk het verschil maken.",

        "Maar we vieren niet zomaar een jaartal. We vieren wat Lions betekenen voor de samenleving. Van jeugduitwisseling en blindenzorg tot duurzaamheid en mentale gezondheid — 75 jaar lang hebben Lions zich ingezet voor de noden in hun omgeving.",

        "Dit lustrumjaar staat in het teken van de campagne 'Lions Vertellen'. We vragen elk van jullie: vertel het verhaal van jouw club. Wat zijn jullie trotse momenten? Welke impact hebben jullie gemaakt? Deze verhalen verzamelen we via podcasts, video's en een speciale lustrumbijlage van het Lion Magazine.",

        "Op 21 september 2026 is de landelijke lustrumviering. Daarnaast verschijnt er een landelijke advertentie, samen met Alzheimer Nederland, waarmee we onze maatschappelijke relevantie op de kaart zetten.",

        "Mijn oproep aan jullie: maak van dit jubileumjaar een jaar om trots op te zijn. Organiseer iets bijzonders in jouw zone of club. Laat zien wat Lions betekenen — niet alleen voor onszelf, maar voor de hele samenleving.",
    ]
)


# ══════════════════════════════════════════════════════════════
# 3. TOELICHTING ALZHEIMER NEDERLAND (~3 min)
# ══════════════════════════════════════════════════════════════

add_title("3. Toelichting Stichting Alzheimer Nederland")

add_speech(
    title="Alzheimer Nederland",
    speaker="GST-coördinator Hans Luijcx / gast spreker Alzheimer NL",
    duration="3 minuten",
    core_message="Dementie raakt ons allemaal — als Lions kunnen we het verschil maken, lokaal en landelijk.",
    tips="Laat de cijfers spreken maar vermijd een abstract betoog. Verbind met de persoonlijke beleving. Maak het concreet: wat KAN een club doen?",
    paragraphs=[
        "Dementie is één van de grootste uitdagingen van onze tijd. In Nederland leven ruim 300.000 mensen met dementie. Jaarlijks krijgen 30.000 mensen de diagnose. Het is de nummer één sterfteoorzaak bij vrouwen. En naar verwachting groeit het aantal naar een half miljoen in 2040.",

        "Waarom hebben we voor Alzheimer Nederland gekozen als ons landelijke goede doel? Omdat het raakt aan de kern van wat Lions International dit jaar benadrukt: Mental Health and Well-Being. En omdat het dichtbij is. Elk van ons kent wel iemand in de directe omgeving die met dementie te maken heeft.",

        "Wat kunnen jullie als clubs doen? Ten eerste: bestem minimaal één van jullie fondsenwervende activiteiten voor Alzheimer Nederland. Ten tweede: organiseer Voetbalherinneringen, waarbij mensen met dementie weer de lol van het voetbal ervaren. Ten derde: creëer Dementievriendelijke Ruimten in jullie gemeente.",

        "Ons streefdoel voor het district is €40.000. Per zone willen we minimaal één Voetbalherinneringen-project en één Dementievriendelijke Ruimte realiseren. Alle donaties verlopen via Stichting Lions Helpen, onze ANBI-stichting — zo weet je dat elke euro op de juiste plek terechtkomt.",

        "En dan is er nog iets unieks: in het eerste kwartaal van 2027 testen Lions de nieuwe Pier C op Schiphol. Schiphol doneert aan Alzheimer Nederland op basis van onze opkomst. Een fantastische kans om impact te maken én zichtbaar te zijn.",

        "Neem contact op met mij of met de lokale afdeling van Alzheimer Nederland. Samen maken we het verschil.",
    ]
)


# ══════════════════════════════════════════════════════════════
# 4. VISIESPEECH "SAMEN VERDER BOUWEN" (~5 min)
# ══════════════════════════════════════════════════════════════

add_title("4. Visiespeech — Samen Verder Bouwen")

add_speech(
    title="Visie DG",
    speaker="Jorick van Gemert (DG)",
    duration="5 minuten",
    core_message="Samen Verder Bouwen is geen slogan — het is de manier waarop we dit Lionsjaar vormgeven, op drie niveaus.",
    tips="Dit is het inhoudelijke hart van de dag. Spreek met overtuiging. Kijk het publiek aan. Bouw op naar de call to action aan het einde.",
    paragraphs=[
        "We zijn nu aangekomen bij het hart van vandaag: mijn visie voor het komende Lionsjaar. 'Samen Verder Bouwen' — dat is het thema dat de Gouverneursraad landelijk heeft gekozen, en dat we in District 110AN een eigen, lokale betekenis geven.",

        "Wat betekent 'Verder Bouwen' voor ons? Het betekent dat we niet alles overhoopgooien. Mijn voorgangers hebben een stevig fundament gelegd. 'Kabinet on tour', transparantie, de Lions40-beweging, de Guiding Lions-trainingen — het werkt. Dat behouden we.",

        "Maar we gaan wel bouwen. Op drie niveaus.",

        "Eén: Bouwen aan onze Clubs. Mission 1.5 is de internationale ambitie — we groeien door relevantie te zijn. Dat begint bij onze leden. Hoe behouden we ze? Hoe betrekken we ze meer? En hoe groeien we, niet alleen in aantallen, maar in betrokkenheid? New Voices is hierbij geen project, maar een fundament. Diversiteit is geen checklist — het is wie we zijn.",

        "Twee: Bouwen aan onze Impact en Zichtbaarheid. 75 jaar Lions Nederland is het perfecte moment om te laten zien wat we doen. Onder de noemer 'Lions Helpen' maken we onze service-activiteiten zichtbaarder. We doen mee aan de World Clean-up Day. We investeren in mentale gezondheid via Alzheimer Nederland. En we rapporteren onze resultaten — want wees trots op wat je doet.",

        "Drie: Bouwen aan de Organisatie. LionsBase moet beter, niet moeilijker. AI kan onze clubbestuurders ontlasten. Digitale clubs en grensoverschrijdend lidmaatschap verkennen we dit jaar. Documenten moeten vindbaar zijn, zodat er aan de voorkant meer tijd overblijft voor waar het echt om gaat: We Serve.",

        "Nu, wie gaat dit bouwen? Dit kabinet. Kijk om je heen. Dit is het team. Een mix van ervaren krachten — Arjan, Pieter, Mark — en nieuw talent. Elk met een eigen portefeuille, elk met eigen verantwoordelijkheid, maar met één gezamenlijke doel.",

        "Mijn verwachting van jullie? Wees proactief. Zoek de clubs op. Luister. Stimuleer. Verbind. En denk breder dan je eigen club of zone. Samen zijn we sterker dan alleen.",

        "Na de lunch gaan we samen aan de slag — buiten, op het strand, in het World Café. Want Samen Verder Bouwen begint vandaag, bij ons, hier.",
    ]
)


# ══════════════════════════════════════════════════════════════
# 5. AFSLUITINGSSPEECH (~2 min)
# ══════════════════════════════════════════════════════════════

add_title("5. Afsluitingsspeech")

add_speech(
    title="Afsluiting",
    speaker="Jorick van Gemert (DG)",
    duration="2 minuten",
    core_message="Vandaag is het begin — het komende Lionsjaar wordt wat we er samen van maken.",
    tips="Kort en krachtig. Energiek. Kijk vooruit. Sluit af met een glimlach.",
    paragraphs=[
        "Beste Lions, wat een dag was dit. We hebben een mooi programma gehad, belangrijke thema's besproken en — nog belangrijker — we hebben elkaar beter leren kennen.",

        "Laat me kort samenvatten wat we meenemen. Ten eerste: 75 jaar Lions in Nederland is een jaar van trots. Vertel jullie verhalen, laat zien wie we zijn. Ten tweede: Alzheimer Nederland is ons goede doel — €40.000, per zone minimaal twee projecten. En ten derde: Samen Verder Bouwen, op drie niveaus — clubs, impact en organisatie.",

        "Maar het belangrijkste neem ik niet in woorden mee, maar in de verbinding die ik vandaag heb gezien. De energie in de World Café-sessies, de samenwerking op het strand, de gesprekken tijdens de borrel — dát is waar het om gaat.",

        "De eerste kabinetsvergadering is in september. Tot die tijd: ga naar jullie clubs, vertel wat we vandaag hebben besproken, en maak een begin met het bouwen.",

        "Ik kijk er enorm naar uit om met jullie het komende jaar tegemoet te gaan. Op naar een fantastisch Lionsjaar!",

        "We Serve. Dank jullie wel.",
    ]
)


# ── Opslaan ──
output_path = "/root/projects/jg/2026-lions-kabinetswissel-110AN/deliverables/docx/spreekteksten-kabinetswissel-110AN_v2.0.docx"
try:
    doc.save(output_path)
    print(f"OK: {output_path}")
except Exception as e:
    print(f"FOUT: {e}", file=sys.stderr)
    sys.exit(1)
