- Neue Tabelle JobParticipant speichert detaillierte CSV-Daten von Fotograf.de.
- process_reminder_analysis und process_statistics nutzen nun die lokale Datenbank statt Selenium-Crawling.
- Neuer 'Daten abgleichen' Button im Vorbereitungs-Tab integriert.
- Automatischer Quick-Login Link-Generator basierend auf Zugangscodes.
- Automatische Bereinigung des Einrichtungsnamens (Entfernung von 'Kindergarten' und Jahreszahlen).
- Links im Text korrigiert und Gallerie-Link auf URL gesetzt.
- Textfluss gestrafft (weniger Absätze) und Grußformel angepasst.
- ReleaseParticipant Tabelle hinzugefügt, um Vornamen für den Webhook zwischenzuspeichern.
- Dankes-E-Mail Template mit Anleitungstext, Gutschein-Code und Anleitung-Bild aktualisiert.
- Offizielle Projektsignatur in Backend-E-Mails integriert.
- Frontend sendet nun Teilnehmer-Mapping beim Versand der Anfrage.
- Tool 4 (Freigabeanfragen) wurde von der Tool 3 Abhängigkeit (Supermailer-Analyse) getrennt.
- UI akzeptiert nun eine Liste im Format: E-Mail, Vorname, Kindernamen.
- Das vereinfacht den Workflow drastisch, wenn nur eine Handvoll Kunden manuell für Freigaben angefragt werden sollen.
- E-Mail-Service so konfiguriert, dass alle ausgehenden E-Mails an eine definierte Test-E-Mail-Adresse umgeleitet werden, wenn DEV_MODE_EMAIL_RECIPIENT gesetzt ist.
- Datenbank um 'DiscountCode' Modell erweitert.
- Neue Backend API-Routen für Upload von Gutscheincodes, Abfrage der Verfügbarkeit und Webhook-Listener (Google Forms) zur automatischen Dankes-E-Mail erstellt.
- Frontend (App.tsx) um ein neues Tool ('Anfrage Veröffentlichung') erweitert, das anhand der CSV-Daten Platzhalter (<Name>, <Kind>, <Kindergarten>) personalisiert und Mails via Gmail versendet.
- Google Forms Webhook Script (google_forms_webhook.js) als Kopiervorlage erstellt.
Bugfix in der QR-Karten-Generierung: Vergangene Calendly-Termine werden nun sowohl beim Abruf (Startzeit auf 'jetzt' gesetzt) als auch bei der Verarbeitung (Filterung auf Termine ab heute 00:00 Uhr Berlin Zeit) korrekt ausgeschlossen. Dies behebt die Anzeige von Altdaten aus dem Vorjahr.
Investierte Zeit in dieser Session: 00:30 (Finaler Feinschliff)
Arbeitszusammenfassung:
Zusammenfassung der Ergebnisse:
1. Finaler Listen-Fix:
* Das Verschwinden der Einwilligungs-Häkchen auf der Terminliste wurde behoben. Statt eines unsicheren Unicode-Zeichens wird nun ein robustes, CSS-gezeichnetes Checkbox-Symbol mit grünem Häkchen verwendet, das garantiert in jedem PDF erscheint.
* Die Einwilligungserkennung wurde durch Live-Datenanalyse von Calendly-Antworten ("Ja, gerne" vs. "Nein, eher nicht") verifiziert und stabilisiert.
2. Header-Optimierung:
* Der Titel der Terminliste wurde auf den Calendly-Event-Namen fokussiert.
* Die automatische Entfernung von (JOBXXXXX) Markierungen aus den Auftragsnamen wurde perfektioniert.
Damit sind alle Anforderungen für den Fotograf.de Scraper und die Shooting-Planung vollständig umgesetzt.
Investierte Zeit in dieser Session: 01:00
Arbeitszusammenfassung:
Zusammenfassung der Ergebnisse:
1. Feature 3: Nachfass-E-Mails (Supermailer) implementiert:
* Portierung der Legacy-Scraping-Logik in den Microservice.
* Neuer Hintergrund-Task analysiert Käuferverhalten, identifiziert Nicht-Käufer mit 0-1 Logins und extrahiert E-Mail-Adressen sowie Schnell-Login-Links.
* Aggregations-Logik fasst mehrere Kinder pro E-Mail-Adresse zusammen (z.B. "Fotos von Max und Moritz").
* Neuer API-Endpunkt generiert eine fertige CSV-Datei für den Supermailer (UTF-8-SIG für Excel-Kompatibilität).
2. UI-Integration:
* Tool 3 im Auftrags-Modal ist nun aktiv.
* Echtzeit-Fortschrittsanzeige während der (langen) Analyse.
* Download-Button erscheint automatisch nach Abschluss der Analyse.
Investierte Zeit in dieser Session: 00:30 (Zusatz-Fixes)
Arbeitszusammenfassung:
Zusammenfassung der Ergebnisse:
1. Unicode- & Font-Fix:
* Einbindung von OpenSans-Regular.ttf zur korrekten Darstellung von Sonderzeichen (ć, ł, etc.) auf QR-Karten und Listen.
2. Layout-Optimierungen:
* PDF-Liste: Zeilenabstände verringert für höhere Datendichte pro Seite.
* "Pausen-Management": Automatische Komprimierung von mehr als zwei aufeinanderfolgenden freien Slots zu einer kompakten "Pause"-Zeile.
* Header-Fix: Automatisches Entfernen von "JOBXXXXX" Präfixen aus dem Auftragsnamen.
* Page-Breaks: Erzwungener Seitenumbruch pro Shooting-Tag inkl. Header-Wiederholung.
3. Consent-Logik (Synchronisation):
* Angleichung der Einwilligungserkennung für QR-Karten und Listen (Suche nach "veröffentlichen"/"bilder" + "ja").
* Positionierung des ☑ Symbols am Ende der Textzeile bei QR-Karten.
Investierte Zeit in dieser Session: 01:15
Arbeitszusammenfassung:
Zusammenfassung der Ergebnisse:
1. QR-Karten Tool (Feinschliff):
* Die Y-Achse wurde um weitere 9 mm nach unten korrigiert (jetzt 31mm / 180mm), um perfekt auf den Linien zu sitzen.
* Volle Zeitzonen-Unterstützung (Europe/Berlin) für korrekte Uhrzeiten im PDF.
* Automatischer Andruck einer manuell gezeichneten Checkbox (☑) bei vorliegender Bildveröffentlichungseinwilligung aus Calendly.
2. Shooting-Planung (Integration):
* Das Tool wurde vom globalen Header direkt in die Detailansicht der Fotoaufträge verschoben.
* Dynamische Auswahl des Calendly-Event-Typs (z.B. "Neuching") über ein Dropdown-Menü. Die manuelle Datumseingabe entfällt.
3. Termin-Übersichtsliste (Neu):
* Generierung einer A4-PDF-Tabelle für den Shooting-Tag.
* Automatisches 6-Minuten-Raster zwischen erstem und letztem Termin, inklusive "Blank-Spacing" (leere Zeilen) für nicht gebuchte Slots.
* Layout mit Logo (oben rechts), Auftragsname (oben links) und Spalten für Familie, Kinder, Veröffentlichung und Erledigt-Häkchen.
4. Technische Fixes & Stabilität:
* Calendly-Pagination-Bug behoben: Das System blättert nun durch alle Ergebnisseiten, um auch bei über 100 Terminen alle Buchungen zu finden.
* Syntaxfehler in qr_generator.py korrigiert.
* README.md im Scraper-Verzeichnis auf den neuesten Stand gebracht.