module.exports = [ "[externals]/next/dist/compiled/next-server/app-route-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-route-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-route-turbo.runtime.dev.js")); module.exports = mod; }), "[externals]/next/dist/compiled/@opentelemetry/api [external] (next/dist/compiled/@opentelemetry/api, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("next/dist/compiled/@opentelemetry/api", () => require("next/dist/compiled/@opentelemetry/api")); module.exports = mod; }), "[externals]/next/dist/compiled/next-server/app-page-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-page-turbo.runtime.dev.js, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js", () => require("next/dist/compiled/next-server/app-page-turbo.runtime.dev.js")); module.exports = mod; }), "[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("next/dist/server/app-render/work-unit-async-storage.external.js", () => require("next/dist/server/app-render/work-unit-async-storage.external.js")); module.exports = mod; }), "[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("next/dist/server/app-render/work-async-storage.external.js", () => require("next/dist/server/app-render/work-async-storage.external.js")); module.exports = mod; }), "[externals]/next/dist/shared/lib/no-fallback-error.external.js [external] (next/dist/shared/lib/no-fallback-error.external.js, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("next/dist/shared/lib/no-fallback-error.external.js", () => require("next/dist/shared/lib/no-fallback-error.external.js")); module.exports = mod; }), "[externals]/next/dist/server/app-render/after-task-async-storage.external.js [external] (next/dist/server/app-render/after-task-async-storage.external.js, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("next/dist/server/app-render/after-task-async-storage.external.js", () => require("next/dist/server/app-render/after-task-async-storage.external.js")); module.exports = mod; }), "[project]/lib/prisma.ts [app-route] (ecmascript)", ((__turbopack_context__) => { "use strict"; return __turbopack_context__.a(async (__turbopack_handle_async_dependencies__, __turbopack_async_result__) => { try { __turbopack_context__.s([ "default", ()=>__TURBOPACK__default__export__, "prisma", ()=>prisma ]); // /opt/erp-system/lib/prisma.ts var __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$2c$__$5b$project$5d2f$node_modules$2f40$prisma$2f$client$29$__ = __turbopack_context__.i("[externals]/@prisma/client [external] (@prisma/client, cjs, [project]/node_modules/@prisma/client)"); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/@prisma/adapter-pg/dist/index.mjs [app-route] (ecmascript)"); var __TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__ = __turbopack_context__.i("[externals]/pg [external] (pg, esm_import, [project]/node_modules/pg)"); var __turbopack_async_dependencies__ = __turbopack_handle_async_dependencies__([ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__, __TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__ ]); [__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__, __TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__] = __turbopack_async_dependencies__.then ? (await __turbopack_async_dependencies__)() : __turbopack_async_dependencies__; ; ; ; // Verhindert zu viele offene Verbindungen beim Hot-Reloading in Next.js const globalForPrisma = /*TURBOPACK member replacement*/ __turbopack_context__.g; const pool = new __TURBOPACK__imported__module__$5b$externals$5d2f$pg__$5b$external$5d$__$28$pg$2c$__esm_import$2c$__$5b$project$5d2f$node_modules$2f$pg$29$__["Pool"]({ connectionString: process.env.DATABASE_URL }); const adapter = new __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$prisma$2f$adapter$2d$pg$2f$dist$2f$index$2e$mjs__$5b$app$2d$route$5d$__$28$ecmascript$29$__["PrismaPg"](pool); const prisma = globalForPrisma.prisma || new __TURBOPACK__imported__module__$5b$externals$5d2f40$prisma$2f$client__$5b$external$5d$__$2840$prisma$2f$client$2c$__cjs$2c$__$5b$project$5d2f$node_modules$2f40$prisma$2f$client$29$__["PrismaClient"]({ adapter }); if ("TURBOPACK compile-time truthy", 1) globalForPrisma.prisma = prisma; const __TURBOPACK__default__export__ = prisma; __turbopack_async_result__(); } catch(e) { __turbopack_async_result__(e); } }, false);}), "[externals]/events [external] (events, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("events", () => require("events")); module.exports = mod; }), "[externals]/url [external] (url, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("url", () => require("url")); module.exports = mod; }), "[externals]/util [external] (util, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("util", () => require("util")); module.exports = mod; }), "[externals]/fs [external] (fs, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("fs", () => require("fs")); module.exports = mod; }), "[externals]/http [external] (http, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("http", () => require("http")); module.exports = mod; }), "[externals]/https [external] (https, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("https", () => require("https")); module.exports = mod; }), "[externals]/zlib [external] (zlib, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("zlib", () => require("zlib")); module.exports = mod; }), "[externals]/stream [external] (stream, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("stream", () => require("stream")); module.exports = mod; }), "[externals]/net [external] (net, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("net", () => require("net")); module.exports = mod; }), "[externals]/dns [external] (dns, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("dns", () => require("dns")); module.exports = mod; }), "[externals]/os [external] (os, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("os", () => require("os")); module.exports = mod; }), "[externals]/path [external] (path, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("path", () => require("path")); module.exports = mod; }), "[externals]/crypto [external] (crypto, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("crypto", () => require("crypto")); module.exports = mod; }), "[externals]/tls [external] (tls, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("tls", () => require("tls")); module.exports = mod; }), "[externals]/child_process [external] (child_process, cjs)", ((__turbopack_context__, module, exports) => { const mod = __turbopack_context__.x("child_process", () => require("child_process")); module.exports = mod; }), "[project]/lib/email.ts [app-route] (ecmascript)", ((__turbopack_context__) => { "use strict"; return __turbopack_context__.a(async (__turbopack_handle_async_dependencies__, __turbopack_async_result__) => { try { __turbopack_context__.s([ "sendEmail", ()=>sendEmail ]); // /opt/erp-system/lib/email.ts var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$nodemailer$2f$lib$2f$nodemailer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/nodemailer/lib/nodemailer.js [app-route] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/prisma.ts [app-route] (ecmascript)"); var __turbopack_async_dependencies__ = __turbopack_handle_async_dependencies__([ __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ ]); [__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__] = __turbopack_async_dependencies__.then ? (await __turbopack_async_dependencies__)() : __turbopack_async_dependencies__; ; ; async function sendEmail({ to, subject, text, html }) { try { // 1. Aktuelle Einstellungen aus der Datenbank laden const settings = await __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].systemSettings.findFirst({ where: { id: 1 } }); // 2. Prüfen, ob SMTP konfiguriert ist if (!settings || !settings.smtpHost || !settings.smtpUser || !settings.smtpPass) { console.warn("WARNUNG: SMTP-Einstellungen fehlen in der GUI. E-Mail an", to, "wird abgebrochen."); return; } // 3. Transporter dynamisch mit den DB-Daten erstellen const transporter = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$nodemailer$2f$lib$2f$nodemailer$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].createTransport({ host: settings.smtpHost, port: settings.smtpPort, secure: settings.smtpPort === 465, auth: { user: settings.smtpUser, pass: settings.smtpPass } }); // 4. E-Mail senden const info = await transporter.sendMail({ from: settings.smtpFrom || settings.smtpUser, to, subject, text, html: html || text.replace(/\n/g, '
') }); console.log("E-Mail erfolgreich gesendet: %s", info.messageId); } catch (error) { console.error("Fehler beim Senden der E-Mail:", error); } } __turbopack_async_result__(); } catch(e) { __turbopack_async_result__(e); } }, false);}), "[project]/app/api/tickets/route.ts [app-route] (ecmascript)", ((__turbopack_context__) => { "use strict"; return __turbopack_context__.a(async (__turbopack_handle_async_dependencies__, __turbopack_async_result__) => { try { __turbopack_context__.s([ "GET", ()=>GET, "POST", ()=>POST ]); // /opt/erp-system/app/api/tickets/route.ts var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/next/server.js [app-route] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/prisma.ts [app-route] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/lib/email.ts [app-route] (ecmascript)"); var __turbopack_async_dependencies__ = __turbopack_handle_async_dependencies__([ __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__ ]); [__TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__] = __turbopack_async_dependencies__.then ? (await __turbopack_async_dependencies__)() : __turbopack_async_dependencies__; ; ; ; async function GET() { try { const tickets = await __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].ticket.findMany({ include: { customer: { select: { companyName: true, firstName: true, lastName: true } }, assignedTo: { select: { id: true, firstName: true, lastName: true } } }, orderBy: { updatedAt: 'desc' } }); return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json(tickets); } catch (error) { return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ error: 'Ladefehler' }, { status: 500 }); } } async function POST(request) { try { const body = await request.json(); const ticket = await __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["default"].ticket.create({ data: { title: body.title, description: body.description, customerId: parseInt(body.customerId), priority: body.priority || 'MEDIUM' }, include: { customer: true } }); // Automatischer E-Mail-Versand an den Kunden if (ticket.customer.email) { await (0, __TURBOPACK__imported__module__$5b$project$5d2f$lib$2f$email$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["sendEmail"])({ to: ticket.customer.email, subject: `Ticket #${ticket.id} eröffnet: ${ticket.title}`, text: `Hallo ${ticket.customer.firstName},\n\ndein Ticket wurde erfolgreich in unserem System erfasst.\n\nBetreff: ${ticket.title}\nBeschreibung:\n${ticket.description}\n\nWir kümmern uns schnellstmöglich darum.\n\nViele Grüße\nDein Support-Team` }); } return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json(ticket, { status: 201 }); } catch (error) { return __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$server$2e$js__$5b$app$2d$route$5d$__$28$ecmascript$29$__["NextResponse"].json({ error: 'Fehler beim Erstellen' }, { status: 500 }); } } __turbopack_async_result__(); } catch(e) { __turbopack_async_result__(e); } }, false);}), ]; //# sourceMappingURL=%5Broot-of-the-server%5D__0h4o3~m._.js.map