계약 DTO SSOT 3차
This commit is contained in:
parent
1007eaf7d9
commit
480fbd543a
10 changed files with 90 additions and 162 deletions
|
|
@ -197,10 +197,7 @@ export type SessionEndResponse = ApiSchema<"SessionEndResponse">;
|
|||
export type CrisisResource = ApiSchema<"CrisisResourceResponse">;
|
||||
export type LearnerSessionSummary = ApiSchema<"LearnerSessionSummary">;
|
||||
|
||||
export interface LearnerSessionsResponse {
|
||||
source: string;
|
||||
sessions: LearnerSessionSummary[];
|
||||
}
|
||||
export type LearnerSessionsResponse = ApiSchema<"LearnerSessionsResponse">;
|
||||
|
||||
export type SessionDetailTurn = ApiSchema<"SessionDetailTurn">;
|
||||
|
||||
|
|
@ -224,16 +221,7 @@ export type ReviewTechnique = ApiSchema<"ReviewTechnique">;
|
|||
export type ReviewNonverbalEvent = ApiSchema<"ReviewNonverbalEvent">;
|
||||
export type ReviewNote = ApiSchema<"ReviewNote">;
|
||||
|
||||
export interface ReviewTurn {
|
||||
id: string;
|
||||
ts: string;
|
||||
speaker: "learner" | "client";
|
||||
who: string;
|
||||
text: string;
|
||||
techniques: ReviewTechnique[];
|
||||
nonverbal: ReviewNonverbalEvent[];
|
||||
note?: ReviewNote | null;
|
||||
}
|
||||
export type ReviewTurn = ApiSchema<"ReviewTurn">;
|
||||
|
||||
export type ReviewPhaseSegment = ApiSchema<"ReviewPhaseSegment">;
|
||||
export type ReviewValencePoint = ApiSchema<"ReviewValencePoint">;
|
||||
|
|
@ -241,56 +229,10 @@ export type ReviewRubricRow = ApiSchema<"ReviewRubricRow">;
|
|||
export type ReviewPoint = ApiSchema<"ReviewPoint">;
|
||||
export type ReviewWorksheetEvidence = ApiSchema<"ReviewWorksheetEvidence">;
|
||||
|
||||
export interface ReviewWorksheetItem {
|
||||
key: string;
|
||||
label: string;
|
||||
value?: string | null;
|
||||
evidence: ReviewWorksheetEvidence[];
|
||||
confidence: "none" | "low" | "medium";
|
||||
emptyReason?: string | null;
|
||||
}
|
||||
|
||||
export interface ReviewWorksheetSection {
|
||||
key: string;
|
||||
title: string;
|
||||
items: ReviewWorksheetItem[];
|
||||
}
|
||||
|
||||
export interface ReviewCaseWorksheet {
|
||||
status: "empty" | "draft_from_transcript";
|
||||
generatedBy: string;
|
||||
sections: ReviewWorksheetSection[];
|
||||
limitations: string[];
|
||||
}
|
||||
|
||||
export interface SessionReviewResponse {
|
||||
session_id: string;
|
||||
client: ReviewClient;
|
||||
date: string;
|
||||
durationLabel: string;
|
||||
durationSeconds: number;
|
||||
reachedPhase: string;
|
||||
sessionSignal: string;
|
||||
supervisorState: string;
|
||||
supervisorName: string;
|
||||
summary: string;
|
||||
phases: ReviewPhaseSegment[];
|
||||
phaseAxis: string[];
|
||||
valenceAxis: string[];
|
||||
clientValence: ReviewValencePoint[];
|
||||
counselorBaseline: ReviewValencePoint[];
|
||||
turns: ReviewTurn[];
|
||||
rubric: ReviewRubricRow[];
|
||||
goodMoments: ReviewPoint[];
|
||||
growthPoints: ReviewPoint[];
|
||||
caseWorksheet?: ReviewCaseWorksheet | null;
|
||||
nextLine?: string | null;
|
||||
clientFeedback?: string | null;
|
||||
audioUrl?: string | null;
|
||||
pdfExportUrl?: string | null;
|
||||
degraded: boolean;
|
||||
reviewReady: boolean;
|
||||
}
|
||||
export type ReviewWorksheetItem = ApiSchema<"ReviewWorksheetItem">;
|
||||
export type ReviewWorksheetSection = ApiSchema<"ReviewWorksheetSection">;
|
||||
export type ReviewCaseWorksheet = ApiSchema<"ReviewCaseWorksheet">;
|
||||
export type SessionReviewResponse = ApiSchema<"SessionReviewResponse">;
|
||||
|
||||
/* =====================================================================
|
||||
SSE 헬퍼 — POST /sessions/{id}/stream
|
||||
|
|
@ -528,53 +470,13 @@ export const adminUsersApi = {
|
|||
}),
|
||||
};
|
||||
|
||||
export interface TeacherSessionSummary {
|
||||
session_id: string;
|
||||
learner_id: string;
|
||||
learner_label: string;
|
||||
persona_code: string;
|
||||
persona_name: string;
|
||||
session_no: number;
|
||||
status: "active" | "ended" | string;
|
||||
stage: string;
|
||||
turn_count: number;
|
||||
learner_turn_count: number;
|
||||
client_turn_count: number;
|
||||
started_at: string;
|
||||
ended_at: string | null;
|
||||
}
|
||||
export type TeacherSessionSummary = ApiSchema<"TeacherSessionSummary">;
|
||||
|
||||
export type TeacherSafetyAlert = ApiSchema<"TeacherSafetyAlert">;
|
||||
export type TeacherGrowthPoint = ApiSchema<"TeacherGrowthPoint">;
|
||||
|
||||
export interface TeacherLearnerGrowth {
|
||||
learner_id: string;
|
||||
learner_label: string;
|
||||
sessions: number;
|
||||
ended_sessions: number;
|
||||
latest_at: string;
|
||||
first_score: number | null;
|
||||
latest_score: number | null;
|
||||
score_delta: number | null;
|
||||
avg_score: number | null;
|
||||
avg_rapport: number | null;
|
||||
trend: "up" | "down" | "flat" | "insufficient" | string;
|
||||
top_techniques: string[];
|
||||
points: TeacherGrowthPoint[];
|
||||
}
|
||||
|
||||
export interface TeacherDashboardResponse {
|
||||
source: string;
|
||||
cohort_label: string;
|
||||
total_learners: number;
|
||||
active_sessions: number;
|
||||
ended_sessions: number;
|
||||
safety_alerts: TeacherSafetyAlert[];
|
||||
learner_growth: TeacherLearnerGrowth[];
|
||||
pending_reviews: TeacherSessionSummary[];
|
||||
recent_sessions: TeacherSessionSummary[];
|
||||
message: string;
|
||||
}
|
||||
export type TeacherLearnerGrowth = ApiSchema<"TeacherLearnerGrowth">;
|
||||
export type TeacherDashboardResponse = ApiSchema<"TeacherDashboardResponse">;
|
||||
|
||||
export const teacherApi = {
|
||||
dashboard: () => api.get<TeacherDashboardResponse>("/teacher/dashboard"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue