'use server' import { createClient } from '@/lib/supabase/server' import { createHash } from 'crypto' import { createAdminClient } from '@/lib/supabase/admin' import { revalidatePath } from 'next/cache' import { sendMail } from '@/utils/mail' import { InvoicePDF } from '@/components/invoice-pdf' import { renderToBuffer } from '@react-pdf/renderer' import React from 'react' import { buildCustomerSnapshot, buildOrderSnapshot } from '@/lib/license-transform' import type { Category, EndCustomer, Order, Product, Profile, WizardSelections } from '@/lib/types' import { getProducts, getCategories } from '@/lib/actions/products' import { validateWizardSelections } from '@/lib/actions/validation' import { getOrderEmailTemplate, getStatusEmailTemplate } from '@/lib/actions/email-templates' // ─── Hilfsfunktionen ───────────────────────────────────────────────────────── function buildEmailItemsSection(items: any[]) { const groupedItems: { [key: string]: any[] } = {} items.forEach((item: any) => { const devName = item.device_name || 'Kasse 1' if (!groupedItems[devName]) { groupedItems[devName] = [] } groupedItems[devName].push(item) }) let itemsDetailsText = '\nKassen-Konfigurationen:' let itemsDetailsHtml = `