From 00961be6755d2d1e42277312874df1c3851b45f5 Mon Sep 17 00:00:00 2001 From: boban Date: Mon, 20 Apr 2026 20:32:14 +0200 Subject: [PATCH] feat: 3 neue E-Mail Templates + Logo im Layout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neue Templates im einheitlichen Stil: - auth/welcome → nach erster E-Mail-Verifizierung, Feature-Übersicht + CTA - subscription/confirmed → Abo-Bestätigung mit Plan/Betrag/Verlängerungsdatum - subscription/cancelled → Kündigung mit Zugang-bis-Datum + Reaktivierungs-CTA Layout: Textwordmark durch logo-text.png ersetzt (height:32px) Preview: alle 3 Templates in /admin/mail-preview ergänzt (11 Templates gesamt) Co-Authored-By: Claude Sonnet 4.6 --- .../views/emails/auth/welcome.blade.php | 86 +++++++++++++++++++ src/resources/views/emails/layout.blade.php | 8 +- .../emails/subscription/cancelled.blade.php | 45 ++++++++++ .../emails/subscription/confirmed.blade.php | 59 +++++++++++++ src/routes/web.php | 24 +++++- 5 files changed, 217 insertions(+), 5 deletions(-) create mode 100644 src/resources/views/emails/auth/welcome.blade.php create mode 100644 src/resources/views/emails/subscription/cancelled.blade.php create mode 100644 src/resources/views/emails/subscription/confirmed.blade.php diff --git a/src/resources/views/emails/auth/welcome.blade.php b/src/resources/views/emails/auth/welcome.blade.php new file mode 100644 index 0000000..011935e --- /dev/null +++ b/src/resources/views/emails/auth/welcome.blade.php @@ -0,0 +1,86 @@ +@extends('emails.layout') + +@section('content') + +{{-- Icon --}} + + + + +
+ +
+ +{{-- Title --}} +

+ Willkommen bei Aziros, {{ $user->name }}! +

+

+ Dein Konto ist bestätigt. Hier ist, was du als Nächstes tun kannst. +

+ +{{-- Feature list --}} +
+ + + + + + + + + + + + +
+ + + + + +
+
+ +
+
+

Kalender

+

Termine planen, organisieren und im Blick behalten.

+
+
+ + + + + +
+
+ +
+
+

Aria – Dein KI-Assistent

+

Frag Aria alles – sie hilft dir, deinen Tag zu organisieren.

+
+
+ + + + + +
+
+ +
+
+

Integrationen

+

Google Kalender & Outlook verbinden und synchronisieren.

+
+
+
+ +{{-- CTA --}} + + Jetzt loslegen + + +@endsection diff --git a/src/resources/views/emails/layout.blade.php b/src/resources/views/emails/layout.blade.php index 8efe2af..3cbddda 100644 --- a/src/resources/views/emails/layout.blade.php +++ b/src/resources/views/emails/layout.blade.php @@ -12,11 +12,11 @@ - {{-- Wordmark --}} + {{-- Logo --}} - diff --git a/src/resources/views/emails/subscription/cancelled.blade.php b/src/resources/views/emails/subscription/cancelled.blade.php new file mode 100644 index 0000000..ee34348 --- /dev/null +++ b/src/resources/views/emails/subscription/cancelled.blade.php @@ -0,0 +1,45 @@ +@extends('emails.layout') + +@section('content') + +{{-- Icon --}} +
- - aziros + + + aziros
+ + + +
+ +
+ +{{-- Title --}} +

+ Dein Abo wurde gekündigt +

+

+ Hallo {{ $user->name }}, wir haben deine Kündigung des {{ $plan }}-Plans erhalten. +

+ +{{-- Access info --}} +@if(!empty($endsAt)) +
+

Zugang aktiv bis

+

{{ $endsAt->format('d.m.Y') }}

+

Danach wechselst du automatisch auf den kostenlosen Plan.

+
+@else +
+

Du wechselst sofort auf den kostenlosen Plan.

+
+@endif + +{{-- Reactivate CTA --}} + + Abo reaktivieren + + +{{-- Footer note --}} +

+ Falls du eine Frage hast, antworte einfach auf diese E-Mail. +

+ +@endsection diff --git a/src/resources/views/emails/subscription/confirmed.blade.php b/src/resources/views/emails/subscription/confirmed.blade.php new file mode 100644 index 0000000..929d8b8 --- /dev/null +++ b/src/resources/views/emails/subscription/confirmed.blade.php @@ -0,0 +1,59 @@ +@extends('emails.layout') + +@section('content') + +{{-- Icon --}} + + + + +
+ +
+ +{{-- Title --}} +

+ Abo erfolgreich aktiviert! +

+

+ Hallo {{ $user->name }}, dein {{ $plan }}-Plan ist jetzt aktiv. +

+ +{{-- Details card --}} +
+ + + + + + + + + + + + + + + + @if(!empty($renewsAt)) + + + + + + @endif +
Plan{{ $plan }}
Abrechnungszeitraum{{ $billing === 'yearly' ? 'Jährlich' : 'Monatlich' }}
Betrag{{ number_format($amount / 100, 2, ',', '.') }} € / {{ $billing === 'yearly' ? 'Jahr' : 'Monat' }}
Nächste Verlängerung{{ $renewsAt->format('d.m.Y') }}
+
+ +{{-- CTA --}} + + Zur App + + +{{-- Footer note --}} +

+ Du kannst dein Abo jederzeit unter Einstellungen → Abonnement kündigen. +

+ +@endsection diff --git a/src/routes/web.php b/src/routes/web.php index 514a353..913e069 100644 --- a/src/routes/web.php +++ b/src/routes/web.php @@ -113,6 +113,28 @@ Route::middleware(['user', 'role:admin'])->prefix('admin')->name('admin.')->grou 'name' => 'Aria – Verfasste E-Mail', 'data' => ['body' => "Hallo!\n\nIch habe deine Aufgabe erledigt und hier ist die Zusammenfassung der Ergebnisse für dein Meeting morgen.\n\nBitte prüfe die Agenda und gib mir Bescheid, ob noch Änderungen nötig sind."], ], + 'auth.welcome' => [ + 'name' => 'Willkommen', + 'data' => ['user' => (object)['name' => 'Max Mustermann']], + ], + 'subscription.confirmed' => [ + 'name' => 'Abo bestätigt', + 'data' => [ + 'user' => (object)['name' => 'Max Mustermann'], + 'plan' => 'Pro', + 'billing' => 'monthly', + 'amount' => 1900, + 'renewsAt' => \Carbon\Carbon::now()->addMonth(), + ], + ], + 'subscription.cancelled' => [ + 'name' => 'Abo gekündigt', + 'data' => [ + 'user' => (object)['name' => 'Max Mustermann'], + 'plan' => 'Pro', + 'endsAt' => \Carbon\Carbon::now()->addDays(14), + ], + ], ]; Route::get('/mail-preview', function () use ($fakeData) { @@ -123,7 +145,7 @@ Route::middleware(['user', 'role:admin'])->prefix('admin')->name('admin.')->grou Route::get('/mail-preview/{template}', function (string $template) use ($fakeData) { abort_unless(isset($fakeData[$template]), 404); $entry = $fakeData[$template]; - $view = 'emails.' . str_replace('.', '/', str_replace('-', '-', $template)); + $view = 'emails.' . $template; return response(view($view, $entry['data'])); })->name('mail-preview.show'); });