import { defineWrappedResponseHandler } from "#server/utils/handler"; import { R } from "#server/utils/response"; import { requireAdmin } from "#server/utils/admin-guard"; import { createCharacterCard, type CreateCharacterCardInput } from "#server/service/character/character-card"; export default defineWrappedResponseHandler(async (event) => { await requireAdmin(event); const body = await readBody(event); const { slug, name, avatar, description, personality, scenario, firstMessage, exampleDialogue, systemPrompt, defaultModelId, tags, isPublic, enabled, sortOrder, } = body as CreateCharacterCardInput; if (!slug || !name) { return R.error("slug、name 为必填", null); } try { const card = await createCharacterCard({ slug, name, avatar, description, personality, scenario, firstMessage, exampleDialogue, systemPrompt, defaultModelId, tags, isPublic, enabled, sortOrder, }); return R.success(card); } catch (e) { return R.error(e instanceof Error ? e.message : String(e), null); } });