import { c as defineEventHandler, u as useRuntimeConfig, r as readBody, e as createError } from '../../_/nitro.mjs'; import 'unhead/server'; import 'vue'; import 'unhead/legacy'; import 'unhead/plugins'; import 'node:http'; import 'node:https'; import 'node:events'; import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; import 'node:url'; const consult_post = defineEventHandler(async (event) => { const config = useRuntimeConfig(); const body = await readBody(event); const { studentName, parentPhone, name, phone, schoolName, grade, location, regionName, memo, url } = body || {}; const finalStudentName = studentName || name || "\uBBF8\uAE30\uC7AC"; const finalParentPhone = parentPhone || phone || ""; const finalLocation = location || regionName || "\uBBF8\uAE30\uC7AC"; const finalGrade = grade || "\uBBF8\uC9C0\uC815"; const finalSchool = schoolName || "\uBBF8\uAE30\uC7AC"; if (!finalParentPhone) { throw createError({ statusCode: 400, statusMessage: "\uBD80\uBAA8\uB2D8 \uC5F0\uB77D\uCC98\uB97C \uC62C\uBC14\uB974\uAC8C \uC785\uB825\uD574\uC8FC\uC138\uC694." }); } const webhookUrl = config.discordWebhookUrl || "https://discordapp.com/api/webhooks/1557204310369116210/9J4y96kmSbYNGtw5OxRgIz7InWcM8o3f8UX0Ad71-IyofwdS7tWmXkF7dj457-I8Ypiu"; const siteName = config.public.siteName || "1:1 \uB9DE\uCDA4\uACFC\uC678"; const siteDomain = config.public.siteDomain || "https://aeseo.cloud"; const now = /* @__PURE__ */ new Date(); const kstTime = new Intl.DateTimeFormat("ko-KR", { timeZone: "Asia/Seoul", year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit", hour12: false }).format(now); const discordPayload = { username: `${siteName} \uC0C1\uB2F4 \uC54C\uB9BC \uBD07`, avatar_url: "https://cdn-icons-png.flaticon.com/512/2997/2997295.png", embeds: [ { title: `[\uC2E0\uADDC \uBB34\uB8CC \uC0C1\uB2F4 \uC2E0\uCCAD \uC811\uC218] ${finalLocation} - ${finalGrade} (${finalStudentName} \uD559\uC0DD)`, description: `**${siteName}** \uC0AC\uC774\uD2B8\uC5D0\uC11C \uC0C8\uB85C\uC6B4 1:1 \uD559\uC2B5 \uC0C1\uB2F4 \uC2E0\uCCAD\uC774 \uC811\uC218\uB418\uC5C8\uC2B5\uB2C8\uB2E4.`, color: 10033947, // 신뢰감 있는 딥 레드/네이비 fields: [ { name: "[\uC811\uC218 \uC0AC\uC774\uD2B8]", value: `**${siteName}** ${siteDomain}`, inline: true }, { name: "[\uC0AC\uB294 \uACF3]", value: finalLocation, inline: true }, { name: "[\uD559\uC0DD \uC774\uB984]", value: `**${finalStudentName}**`, inline: true }, { name: "[\uBD80\uBAA8\uB2D8 \uC5F0\uB77D\uCC98]", value: `**${finalParentPhone}**`, inline: true }, { name: "[\uB2E4\uB2C8\uB294 \uD559\uAD50]", value: finalSchool, inline: true }, { name: "[\uD559\uB144]", value: finalGrade, inline: true }, { name: "[\uC811\uC218 \uC77C\uC2DC (KST)]", value: kstTime, inline: true }, { name: "[\uC720\uC785 \uD398\uC774\uC9C0 URL]", value: url ? `${url}` : `${siteDomain}`, inline: false }, { name: "[\uC0C1\uB2F4\uBB38\uC758 \uB0B4\uC6A9 (\uC120\uD0DD)]", value: memo && memo.trim() ? memo.trim() : "\uC785\uB825\uB41C \uC0C1\uC138 \uBB38\uC758 \uB0B4\uC6A9 \uC5C6\uC74C", inline: false } ], footer: { text: `${siteName} \uC2E4\uC2DC\uAC04 \uC0C1\uB2F4 \uC54C\uB9BC \uC2DC\uC2A4\uD15C` }, timestamp: now.toISOString() } ] }; try { const res = await fetch(webhookUrl, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(discordPayload) }); if (!res.ok) { const errText = await res.text(); console.error("[Discord Webhook Error]:", res.status, errText); return { success: false, message: "\uB514\uC2A4\uCF54\uB4DC \uC804\uC1A1 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4." }; } return { success: true, message: "\uC0C1\uB2F4 \uC2E0\uCCAD\uC774 \uC815\uC0C1\uC801\uC73C\uB85C \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4." }; } catch (err) { console.error("[Consult Submission Error]:", err.message); return { success: false, message: "\uC11C\uBC84 \uC624\uB958\uB85C \uC778\uD574 \uC804\uC1A1\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4." }; } }); export { consult_post as default }; //# sourceMappingURL=consult.post.mjs.map