fix: block legacy dynamic candidate adoption

This commit is contained in:
Jesse_Chen
2026-07-20 15:11:42 +08:00
parent 8f98e8585d
commit 7ef8f7c146
8 changed files with 117 additions and 13 deletions
@@ -29,7 +29,7 @@ export async function POST(request: Request) {
const admin = createAdminSupabaseClient();
const { data: stored, error: caseError } = await admin
.from("birth_time_rectification_cases")
.select("id,user_id,status,candidate_result_id,candidate_result,turn_state")
.select("id,user_id,journey_protocol,status,candidate_result_id,candidate_result,turn_state")
.eq("id", parsed.data.caseId)
.eq("user_id", user.id)
.maybeSingle();
@@ -190,6 +190,7 @@ export function useBirthTimeGuidedJourney(input: GuidedJourneyInput): BirthTimeG
const resultId = turn?.candidateResult?.resultId;
const winner = turn?.candidateResult?.winningSegment;
if (!turn || !resultId || winner?.representativeTime !== time) return;
if (turn.journeyProtocol === "dynamic-choice-v2") return;
const release = claimMutation(busy);
if (release === null) return;
setPending(true);
@@ -31,6 +31,7 @@ export function candidateWorkingTime(
return assessment?.id === request.caseId
&& assessment?.user_id === request.userId
&& assessment?.journey_protocol === "legacy-guided-v1"
&& terminalStatusMatches
&& assessment.candidate_result_id === request.resultId
&& action?.resultId === request.resultId
@@ -15,15 +15,12 @@ export type GuidedTerminalPath =
export function guidedTerminalPath(journey: JourneyClientResponse): GuidedTerminalPath | null {
const kind = journey.nextAction.kind;
const winner = journey.candidateResult?.winningSegment;
if (journey.journeyProtocol === "dynamic-choice-v2"
&& winner
&& (kind === "present_low_result" || kind === "present_medium_result" || kind === "candidate_saved")) {
return {
kind: "complete_with_candidate",
time: winner.representativeTime,
kind: "edit_birth_time_details",
preservesCase: true,
appliesCandidateTime: true,
appliesCandidateTime: false,
};
}
return kind === "present_low_result" || kind === "candidate_saved"