From a1935aae02f82c76708cc4da2b3a14583de27966 Mon Sep 17 00:00:00 2001 From: elpatron Date: Tue, 30 Sep 2025 11:18:23 +0200 Subject: [PATCH] feat: Add AGB PDF attachment to booking confirmation emails - Extend email system to support file attachments - Add sendEmailWithAGB() function that automatically attaches AGB.pdf - Implement AGB PDF caching for better performance - Update booking confirmation email template with AGB notice - Add visual highlight box in HTML email with AGB information - Update email subject to indicate AGB attachment - Include AGB reference in both HTML and text versions - Ensure legal compliance by automatically sending terms with confirmations Changes: - email.ts: Add attachment support and AGB PDF integration - email-templates.ts: Add AGB notice to confirmation emails - bookings.ts: Use sendEmailWithAGB for confirmed bookings - German localization for admin treatments component --- src/client/components/admin-treatments.tsx | 46 +++++++++++----------- src/server/lib/email-templates.ts | 4 ++ src/server/lib/email.ts | 46 ++++++++++++++++++++++ src/server/rpc/bookings.ts | 8 ++-- 4 files changed, 77 insertions(+), 27 deletions(-) diff --git a/src/client/components/admin-treatments.tsx b/src/client/components/admin-treatments.tsx index c08467f..cde9533 100644 --- a/src/client/components/admin-treatments.tsx +++ b/src/client/components/admin-treatments.tsx @@ -9,8 +9,8 @@ export function AdminTreatments() { name: "", description: "", duration: 60, - price: 5000, // $50.00 in cents - category: "Manicure", + price: 5000, // 50,00 € in Cent + category: "Maniküre", }); const { data: treatments } = useQuery( @@ -29,7 +29,7 @@ export function AdminTreatments() { queryClient.treatments.remove.mutationOptions() ); - const categories = ["Manicure", "Pedicure", "Nail Art", "Extensions", "Other"]; + const categories = ["Maniküre", "Pediküre", "Nageldesign", "Verlängerungen", "Sonstiges"]; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); @@ -61,7 +61,7 @@ export function AdminTreatments() { description: "", duration: 60, price: 5000, - category: "Manicure", + category: "Maniküre", }); }; @@ -86,26 +86,26 @@ export function AdminTreatments() { return (
-

Manage Treatments

+

Behandlungen verwalten

{showForm && (

- {editingTreatment ? "Edit Treatment" : "Add New Treatment"} + {editingTreatment ? "Behandlung bearbeiten" : "Neue Behandlung hinzufügen"}