개선관리 요구사항과 Google 로그인을 완료

This commit is contained in:
Yun Chan 2026-08-28 16:07:09 +09:00
parent cc0a15b7c6
commit 2a39636163
112 changed files with 10166 additions and 527 deletions

View file

@ -5,14 +5,25 @@ import type {
UserPrepostMeasuresResponse,
} from "../src/lib/api";
export const FILLED_REVIEW_SESSION_ID = "filled-review-visual";
export const EMPTY_REVIEW_SESSION_ID = "empty-review-visual";
export const FILLED_REVIEW_SESSION_ID =
"00000000-0000-4000-8000-000000000110";
export const EMPTY_REVIEW_SESSION_ID =
"00000000-0000-4000-8000-000000000111";
export const FILLED_REVIEW_TURN_IDS = [
"00000000-0000-4000-8000-000000000001",
"00000000-0000-4000-8000-000000000002",
"00000000-0000-4000-8000-000000000003",
"00000000-0000-4000-8000-000000000004",
"00000000-0000-4000-8000-000000000005",
"00000000-0000-4000-8000-000000000006",
] as const;
export function filledReviewResponse(
sessionId: string = FILLED_REVIEW_SESSION_ID,
): SessionReviewResponse {
return {
session_id: sessionId,
learnerFeedbackEnabled: true,
client: {
name: "서연",
initial: "서",
@ -54,6 +65,7 @@ export function filledReviewResponse(
turns: [
{
id: "t1",
turn_id: FILLED_REVIEW_TURN_IDS[0],
ts: "03:12",
speaker: "client",
who: "서연",
@ -64,6 +76,7 @@ export function filledReviewResponse(
},
{
id: "t2",
turn_id: FILLED_REVIEW_TURN_IDS[1],
ts: "05:04",
speaker: "learner",
who: "나",
@ -86,6 +99,7 @@ export function filledReviewResponse(
},
{
id: "t3",
turn_id: FILLED_REVIEW_TURN_IDS[2],
ts: "12:41",
speaker: "client",
who: "서연",
@ -96,6 +110,7 @@ export function filledReviewResponse(
},
{
id: "t4",
turn_id: FILLED_REVIEW_TURN_IDS[3],
ts: "16:05",
speaker: "learner",
who: "나",
@ -115,6 +130,7 @@ export function filledReviewResponse(
},
{
id: "t5",
turn_id: FILLED_REVIEW_TURN_IDS[4],
ts: "24:18",
speaker: "learner",
who: "나",
@ -134,6 +150,7 @@ export function filledReviewResponse(
},
{
id: "t6",
turn_id: FILLED_REVIEW_TURN_IDS[5],
ts: "29:52",
speaker: "client",
who: "서연",
@ -224,6 +241,41 @@ export function filledReviewResponse(
"위험도 평가는 별도 안전평가 결과와 함께 확인해야 합니다.",
],
},
firstSessionChecklist: {
version: "first-session-rapport-open-question.v1",
applicable: true,
status: "ready",
title: "첫 회기 라포·개방질문 체크리스트",
note: "축어록에서 관찰 가능한 대화 행동을 규칙 기반으로 점검하며, 임상 평가나 성적 판정이 아닙니다.",
criteria: [
{
criterionId: "first-session.rapport-reflection",
label: "라포 형성 반영",
description: "내담자의 감정이나 경험을 평가 없이 되짚는 발화를 확인합니다.",
status: "met",
evidenceTurns: [
{
turnId: "t2",
turnSeq: 2,
quote: "혼자서 버티고 있었다는 느낌이 들어요.",
},
],
},
{
criterionId: "first-session.open-question-one-focus",
label: "한 초점 개방질문",
description: "한 번에 한 초점을 묻는 개방형 질문 발화를 확인합니다.",
status: "met",
evidenceTurns: [
{
turnId: "t2",
turnSeq: 2,
quote: "비교가 반복될수록 스스로를 의심하게 됐던 걸까요?",
},
],
},
],
},
nextLine:
"그 말을 들은 바로 그 순간, 몸에서는 어떤 반응이 먼저 올라왔나요?",
clientFeedback: