feat: add rectification event decision contract v2
This commit is contained in:
@@ -11,7 +11,7 @@ type RouteContext = { params: Promise<{ caseId: string }> };
|
||||
const acceptSchema = z.object({
|
||||
sessionId: z.string().uuid(),
|
||||
resultId: z.string().uuid(),
|
||||
candidateId: z.string().regex(/^(?:[01]\d|2[0-3]):[0-5]\d$/),
|
||||
candidateId: z.string().uuid(),
|
||||
requestId: z.string().uuid(),
|
||||
}).strict();
|
||||
|
||||
@@ -90,24 +90,29 @@ export async function POST(request: Request, context: RouteContext) {
|
||||
|
||||
try {
|
||||
const { data, error } = await accounting.rpc(
|
||||
"accept_agentic_rectification_candidate_for_case",
|
||||
"accept_agentic_rectification_candidate_for_case_v2",
|
||||
{
|
||||
p_user_id: user.id,
|
||||
p_case_id: caseId,
|
||||
p_result_id: parsed.data.resultId,
|
||||
p_time: parsed.data.candidateId,
|
||||
p_candidate_id: parsed.data.candidateId,
|
||||
p_request_id: parsed.data.requestId,
|
||||
},
|
||||
);
|
||||
if (error) throw new RectificationToolServiceError(error.message);
|
||||
const row = Array.isArray(data) ? data[0] : data;
|
||||
if (!row || typeof row !== "object" || (row as { success?: unknown }).success !== true) {
|
||||
if (
|
||||
!row || typeof row !== "object"
|
||||
|| (row as { success?: unknown }).success !== true
|
||||
|| (row as { status?: unknown }).status !== "accepted"
|
||||
) {
|
||||
return NextResponse.json({ error: "暂时无法采用该候选时间", code: "candidate_accept_rejected" }, { status: 409 });
|
||||
}
|
||||
const result = row as Record<string, unknown>;
|
||||
return NextResponse.json({
|
||||
ok: true,
|
||||
saved_time: result.saved_time,
|
||||
status: result.status === "confirmed" ? "confirmed" : "accepted",
|
||||
status: "accepted",
|
||||
result_id: result.result_id,
|
||||
case_status: result.case_status,
|
||||
idempotent: result.idempotent === true,
|
||||
|
||||
Reference in New Issue
Block a user