import { NextResponse } from "next/server"; import { Logger } from "@/lib/Logger"; import { botRpc, errorResponse, readJsonBody, requireBoolean, requireSession, requireString, } from "@/lib/api"; interface PauseBody { serverId?: unknown; isPaused?: unknown; } export async function POST(request: Request) { try { const sessionResult = await requireSession(); if (!sessionResult.ok) return sessionResult.response; const userId = sessionResult.session.user.id; const bodyResult = await readJsonBody(request); if (!bodyResult.ok) return bodyResult.response; const serverIdResult = requireString(bodyResult.data.serverId, "serverId"); if (!serverIdResult.ok) return serverIdResult.response; const isPausedResult = requireBoolean(bodyResult.data.isPaused, "isPaused"); if (!isPausedResult.ok) return isPausedResult.response; const { status, body } = await botRpc({ channel: "player:paused", payload: { action: "player_paused", serverId: serverIdResult.value, userId, isPaused: isPausedResult.value, }, }); return NextResponse.json(body, { status }); } catch (error) { Logger.error(`player/pause API error: ${error instanceof Error ? error.message : String(error)}`); return errorResponse("서버 오류가 발생했습니다.", 500); } }