Skip to content

- Import von E-Mails#428

Merged
dspangenberg merged 1 commit intomainfrom
develop
Apr 2, 2026
Merged

- Import von E-Mails#428
dspangenberg merged 1 commit intomainfrom
develop

Conversation

@dspangenberg
Copy link
Copy Markdown
Owner

@dspangenberg dspangenberg commented Apr 2, 2026

  • Timeline mit Mails und Notizen

Summary by CodeRabbit

  • Neue Funktionen
    • Einheitliche Zeitleiste: Alle Ihre Notizen und E-Mails aus verschiedenen Quellen werden automatisch kombiniert und in chronologischer Reihenfolge in einer einzigen, übersichtlichen Ansicht dargestellt. Dies bietet eine zentrale Übersicht aller Ihrer Aktivitäten an einem Ort. Die integrierte Paginierungsfunktion ermöglicht komfortable Navigation durch beliebig große Datenmengen.

- Timeline mit Mails und Notizen
@dspangenberg dspangenberg merged commit 1cc12a4 into main Apr 2, 2026
2 of 3 checks passed
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 2, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8004a1be-63dd-4834-b108-b75ca2b116f7

📥 Commits

Reviewing files that changed from the base of the PR and between 2adc8f7 and 96268ab.

📒 Files selected for processing (3)
  • app/Actions/BuildTimeline.php
  • app/Data/TimelineEntryData.php
  • config/hetzner-laravel.php

Walkthrough

Die Änderungen führen eine neue BuildTimeline-Aktion ein, die eine vereinheitlichte Timeline aus mehreren Quellen (Notables und Dropbox-Mails) über SQL-Union-Abfragen zusammenstellt, die Ergebnisse in typisierte Datenobjekte hydratisiert und sowohl standardmäßiges Abrufen als auch Pagination unterstützt.

Changes

Cohort / File(s) Zusammenfassung
Timeline-Aktion und Datenklasse
app/Actions/BuildTimeline.php, app/Data/TimelineEntryData.php
Neue BuildTimeline-Klasse mit Methoden zum Hinzufügen von Notables und Dropbox-Mails als Datenquellen, Union-Query-Konstruktion, Ausführung und Hydration in TimelineEntryData-Objekte. TimelineEntryData ist eine typisierte Datenklasse mit DateTime-Transformer und optionalen Note- oder Mail-Zuordnungen.
Konfiguration
config/hetzner-laravel.php
Neue Konfigurationsdatei für Hetzner-Token, bezieht den Wert aus der Umgebungsvariablen HETZNER_TOKEN.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant BuildTimeline
    participant Database
    participant Models as Notable/DropboxMail
    participant Hydrator
    participant TimelineEntryData

    Client->>BuildTimeline: paginate()
    BuildTimeline->>BuildTimeline: withNotables() + withDropboxMails()
    BuildTimeline->>Database: UNION query (notables ∪ dropbox_mails)
    Database-->>BuildTimeline: Raw timeline rows
    BuildTimeline->>Hydrator: Batch fetch by type & id
    Hydrator->>Models: Load Notable records (with creator)
    Hydrator->>Models: Load DropboxMail records
    Models-->>Hydrator: Model instances
    Hydrator->>TimelineEntryData: Map rows to TimelineEntryData
    TimelineEntryData-->>BuildTimeline: Hydrated entries collection
    BuildTimeline-->>Client: Paginated TimelineEntryData
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐰 Ein Kaninchen hüpft durch die Zeit,
Notizen und Mails vereint im Streit,
SQL-Unions tanzen in Reih' und Glied,
Daten hydratisiert – ein chronologisch Lied! 📅✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 PHPStan (2.1.44)

PHPStan was skipped because the config uses disallowed bootstrapFiles, bootstrapFile, or includes directives.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant