/** * 场景裂变配置 API(公开端点) * * 允许普通用户获取场景裂变的配置信息 */ import { NextResponse } from "next/server"; import { auth } from "@/app/(auth)/auth"; import { getSystemSetting } from "@/lib/db/queries"; // 默认提示词 const FALLBACK_PROMPT = "将图1的产品替换到图2的场景中,保持图1产品的外观、颜色和细节不变,自然融合到图2的环境中。"; export async function GET() { try { // 需要登录但不需要 admin 权限 const session = await auth(); if (!session?.user?.id) { return NextResponse.json( { error: "未登录" }, { status: 401 } ); } // 获取配置 const setting = await getSystemSetting({ key: "scene_fusion_config" }); if (setting?.value) { const config = setting.value as { enabled?: boolean; defaultPrompt?: string; maxScenes?: number; }; return NextResponse.json({ enabled: config.enabled ?? true, defaultPrompt: config.defaultPrompt || FALLBACK_PROMPT, maxScenes: config.maxScenes ?? 10, }); } // 返回默认配置 return NextResponse.json({ enabled: true, defaultPrompt: FALLBACK_PROMPT, maxScenes: 10, }); } catch (error) { console.error("[SceneFusion Config] Error:", error); return NextResponse.json( { error: "获取配置失败" }, { status: 500 } ); } }