운영 화면과 회기 리뷰 UI 갱신
This commit is contained in:
parent
e7ebb38177
commit
3a9f70a97b
18 changed files with 2210 additions and 137 deletions
|
|
@ -1188,6 +1188,24 @@ export interface paths {
|
|||
patch: operations["patch_preferences_users_me_preferences_patch"];
|
||||
trace?: never;
|
||||
};
|
||||
"/users/me/prepost-measures": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
/** List My Prepost Measures */
|
||||
get: operations["list_my_prepost_measures_users_me_prepost_measures_get"];
|
||||
/** Upsert My Prepost Measure */
|
||||
put: operations["upsert_my_prepost_measure_users_me_prepost_measures_put"];
|
||||
post?: never;
|
||||
delete?: never;
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/users/me/voice-presets": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
@ -1212,7 +1230,8 @@ export interface paths {
|
|||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
get?: never;
|
||||
/** List My Support Tickets */
|
||||
get: operations["list_my_support_tickets_users_support_tickets_get"];
|
||||
put?: never;
|
||||
/** Create Support Ticket */
|
||||
post: operations["create_support_ticket_users_support_tickets_post"];
|
||||
|
|
@ -1349,15 +1368,31 @@ export interface components {
|
|||
* @enum {string}
|
||||
*/
|
||||
category: "account_access" | "session_review" | "voice_browser" | "content_scenario" | "safety" | "other";
|
||||
/**
|
||||
* Child Ticket Count
|
||||
* @default 0
|
||||
*/
|
||||
child_ticket_count: number;
|
||||
/** Created At */
|
||||
created_at: number;
|
||||
/**
|
||||
* Duplicate Count
|
||||
* @default 0
|
||||
*/
|
||||
duplicate_count: number;
|
||||
/** Duplicate Parent Candidate Id */
|
||||
duplicate_parent_candidate_id?: string | null;
|
||||
/**
|
||||
* Event Count
|
||||
* @default 0
|
||||
*/
|
||||
event_count: number;
|
||||
/** Fingerprint */
|
||||
fingerprint: string;
|
||||
/** Last Event At */
|
||||
last_event_at?: number | null;
|
||||
/** Parent Ticket Id */
|
||||
parent_ticket_id?: string | null;
|
||||
/**
|
||||
* Priority
|
||||
* @enum {string}
|
||||
|
|
@ -1386,6 +1421,8 @@ export interface components {
|
|||
AdminTicketPatch: {
|
||||
/** Assigned Group */
|
||||
assigned_group?: string | null;
|
||||
/** Parent Ticket Id */
|
||||
parent_ticket_id?: string | null;
|
||||
/** Priority */
|
||||
priority?: ("low" | "normal" | "high" | "urgent") | null;
|
||||
/** Resolution Note */
|
||||
|
|
@ -1521,6 +1558,38 @@ export interface components {
|
|||
/** Used Ratio */
|
||||
used_ratio: number;
|
||||
};
|
||||
/** AdminUsageDailyCost */
|
||||
AdminUsageDailyCost: {
|
||||
/** Cost Usd */
|
||||
cost_usd: number;
|
||||
/** Day */
|
||||
day: string;
|
||||
/** Tokens In */
|
||||
tokens_in: number;
|
||||
/** Tokens Out */
|
||||
tokens_out: number;
|
||||
/** Turns */
|
||||
turns: number;
|
||||
};
|
||||
/** AdminUsageEvaluatorCache */
|
||||
AdminUsageEvaluatorCache: {
|
||||
/** Enabled */
|
||||
enabled: boolean;
|
||||
/** Entries */
|
||||
entries: number;
|
||||
/** Evictions */
|
||||
evictions: number;
|
||||
/** Hit Rate */
|
||||
hit_rate: number;
|
||||
/** Hits */
|
||||
hits: number;
|
||||
/** Misses */
|
||||
misses: number;
|
||||
/** Requests */
|
||||
requests: number;
|
||||
/** Stores */
|
||||
stores: number;
|
||||
};
|
||||
/** AdminUsageResponse */
|
||||
AdminUsageResponse: {
|
||||
budget: components["schemas"]["AdminUsageBudget"];
|
||||
|
|
@ -1528,8 +1597,11 @@ export interface components {
|
|||
by_provider: components["schemas"]["AdminUsageBreakdown"][];
|
||||
/** Cost Usd */
|
||||
cost_usd: number;
|
||||
/** Daily Cost */
|
||||
daily_cost?: components["schemas"]["AdminUsageDailyCost"][];
|
||||
/** Durable */
|
||||
durable: boolean;
|
||||
evaluator_cache: components["schemas"]["AdminUsageEvaluatorCache"];
|
||||
/** Generated At */
|
||||
generated_at: number;
|
||||
/** Metered Turns */
|
||||
|
|
@ -2904,7 +2976,7 @@ export interface components {
|
|||
* Kind
|
||||
* @enum {string}
|
||||
*/
|
||||
kind: "audio" | "silence" | "pace" | "barge_in";
|
||||
kind: "audio" | "silence" | "pace" | "barge_in" | "paralinguistic" | "prosody" | "audio_quality";
|
||||
/** Label */
|
||||
label: string;
|
||||
};
|
||||
|
|
@ -3649,6 +3721,102 @@ export interface components {
|
|||
*/
|
||||
voice_rate: number;
|
||||
};
|
||||
/** UserPrepostMeasureItem */
|
||||
UserPrepostMeasureItem: {
|
||||
/** Collected At */
|
||||
collected_at: number;
|
||||
/** Instrument Version */
|
||||
instrument_version: string;
|
||||
/** Item Count */
|
||||
item_count: number;
|
||||
/** Max Score */
|
||||
max_score: number;
|
||||
/** Measure Id */
|
||||
measure_id: string;
|
||||
/**
|
||||
* Measure Name
|
||||
* @enum {string}
|
||||
*/
|
||||
measure_name: "self_efficacy" | "skill_proficiency" | "training_satisfaction";
|
||||
/** Min Score */
|
||||
min_score: number;
|
||||
/** Normalized Score */
|
||||
normalized_score: number;
|
||||
/** Pilot Id */
|
||||
pilot_id: string;
|
||||
/** Raw Score */
|
||||
raw_score: number;
|
||||
/**
|
||||
* Timepoint
|
||||
* @enum {string}
|
||||
*/
|
||||
timepoint: "pre" | "post";
|
||||
/** Updated At */
|
||||
updated_at: number;
|
||||
};
|
||||
/** UserPrepostMeasureRequest */
|
||||
UserPrepostMeasureRequest: {
|
||||
/**
|
||||
* Instrument Version
|
||||
* @default pilot-prepost-scaffold-2026-06-28
|
||||
*/
|
||||
instrument_version: string;
|
||||
/**
|
||||
* Item Count
|
||||
* @default 1
|
||||
*/
|
||||
item_count: number;
|
||||
/**
|
||||
* Max Score
|
||||
* @default 5
|
||||
*/
|
||||
max_score: number;
|
||||
/**
|
||||
* Measure Name
|
||||
* @enum {string}
|
||||
*/
|
||||
measure_name: "self_efficacy" | "skill_proficiency" | "training_satisfaction";
|
||||
/**
|
||||
* Min Score
|
||||
* @default 1
|
||||
*/
|
||||
min_score: number;
|
||||
/**
|
||||
* Pilot Id
|
||||
* @default phase3-pilot-draft
|
||||
*/
|
||||
pilot_id: string;
|
||||
/** Raw Score */
|
||||
raw_score: number;
|
||||
/**
|
||||
* Timepoint
|
||||
* @enum {string}
|
||||
*/
|
||||
timepoint: "pre" | "post";
|
||||
};
|
||||
/** UserPrepostMeasuresResponse */
|
||||
UserPrepostMeasuresResponse: {
|
||||
/** Complete Measure Pairs */
|
||||
complete_measure_pairs: number;
|
||||
/** Durable */
|
||||
durable: boolean;
|
||||
/** Generated At */
|
||||
generated_at: number;
|
||||
/** Measures */
|
||||
measures: components["schemas"]["UserPrepostMeasureItem"][];
|
||||
/** Pilot Id */
|
||||
pilot_id: string;
|
||||
/** Required Measure Names */
|
||||
required_measure_names: ("self_efficacy" | "skill_proficiency" | "training_satisfaction")[];
|
||||
/** Required Timepoints */
|
||||
required_timepoints: ("pre" | "post")[];
|
||||
/**
|
||||
* Source
|
||||
* @constant
|
||||
* @enum {string}
|
||||
*/
|
||||
source: "database";
|
||||
};
|
||||
/** UserProfilePatch */
|
||||
UserProfilePatch: {
|
||||
/** Affiliation */
|
||||
|
|
@ -3751,6 +3919,40 @@ export interface components {
|
|||
/** User Id */
|
||||
user_id: string;
|
||||
};
|
||||
/** UserSupportTicketListItem */
|
||||
UserSupportTicketListItem: {
|
||||
/** Assigned Group */
|
||||
assigned_group: string;
|
||||
/**
|
||||
* Category
|
||||
* @enum {string}
|
||||
*/
|
||||
category: "account_access" | "session_review" | "voice_browser" | "content_scenario" | "safety" | "other";
|
||||
/** Created At */
|
||||
created_at: number;
|
||||
/**
|
||||
* Priority
|
||||
* @enum {string}
|
||||
*/
|
||||
priority: "low" | "normal" | "high" | "urgent";
|
||||
/** Resolution Note */
|
||||
resolution_note: string;
|
||||
/** Resolved At */
|
||||
resolved_at?: number | null;
|
||||
/** Source Path */
|
||||
source_path: string;
|
||||
/**
|
||||
* Status
|
||||
* @enum {string}
|
||||
*/
|
||||
status: "open" | "triaged" | "in_progress" | "resolved" | "closed";
|
||||
/** Subject */
|
||||
subject: string;
|
||||
/** Ticket Id */
|
||||
ticket_id: string;
|
||||
/** Updated At */
|
||||
updated_at: number;
|
||||
};
|
||||
/** UserSupportTicketRequest */
|
||||
UserSupportTicketRequest: {
|
||||
/** Body */
|
||||
|
|
@ -3800,6 +4002,21 @@ export interface components {
|
|||
/** Ticket Id */
|
||||
ticket_id: string;
|
||||
};
|
||||
/** UserSupportTicketsResponse */
|
||||
UserSupportTicketsResponse: {
|
||||
/** Durable */
|
||||
durable: boolean;
|
||||
/** Generated At */
|
||||
generated_at: number;
|
||||
/**
|
||||
* Source
|
||||
* @constant
|
||||
* @enum {string}
|
||||
*/
|
||||
source: "database";
|
||||
/** Tickets */
|
||||
tickets: components["schemas"]["UserSupportTicketListItem"][];
|
||||
};
|
||||
/** ValidationError */
|
||||
ValidationError: {
|
||||
/** Location */
|
||||
|
|
@ -6083,6 +6300,76 @@ export interface operations {
|
|||
};
|
||||
};
|
||||
};
|
||||
list_my_prepost_measures_users_me_prepost_measures_get: {
|
||||
parameters: {
|
||||
query?: {
|
||||
pilot_id?: string;
|
||||
};
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: {
|
||||
"__Host-vignette_sid"?: string | null;
|
||||
vignette_sid?: string | null;
|
||||
};
|
||||
};
|
||||
requestBody?: never;
|
||||
responses: {
|
||||
/** @description Successful Response */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["UserPrepostMeasuresResponse"];
|
||||
};
|
||||
};
|
||||
/** @description Validation Error */
|
||||
422: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["HTTPValidationError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
upsert_my_prepost_measure_users_me_prepost_measures_put: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: {
|
||||
"__Host-vignette_sid"?: string | null;
|
||||
vignette_sid?: string | null;
|
||||
};
|
||||
};
|
||||
requestBody: {
|
||||
content: {
|
||||
"application/json": components["schemas"]["UserPrepostMeasureRequest"];
|
||||
};
|
||||
};
|
||||
responses: {
|
||||
/** @description Successful Response */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["UserPrepostMeasureItem"];
|
||||
};
|
||||
};
|
||||
/** @description Validation Error */
|
||||
422: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["HTTPValidationError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
get_voice_presets_users_me_voice_presets_get: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
@ -6115,6 +6402,38 @@ export interface operations {
|
|||
};
|
||||
};
|
||||
};
|
||||
list_my_support_tickets_users_support_tickets_get: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: {
|
||||
"__Host-vignette_sid"?: string | null;
|
||||
vignette_sid?: string | null;
|
||||
};
|
||||
};
|
||||
requestBody?: never;
|
||||
responses: {
|
||||
/** @description Successful Response */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["UserSupportTicketsResponse"];
|
||||
};
|
||||
};
|
||||
/** @description Validation Error */
|
||||
422: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["HTTPValidationError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
create_support_ticket_users_support_tickets_post: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
|
|||
|
|
@ -562,6 +562,11 @@ export type UserProfilePatchRequest = ApiSchema<"UserProfilePatch">;
|
|||
export type OnboardingRequest = ApiSchema<"OnboardingRequest">;
|
||||
export type AvatarUploadResponse = ApiSchema<"AvatarUploadResponse">;
|
||||
export type VoicePresetResponse = ApiSchema<"VoicePresetResponse">;
|
||||
export type UserSupportTicketListItem = ApiSchema<"UserSupportTicketListItem">;
|
||||
export type UserSupportTicketsResponse = ApiSchema<"UserSupportTicketsResponse">;
|
||||
export type UserPrepostMeasureRequest = ApiSchema<"UserPrepostMeasureRequest">;
|
||||
export type UserPrepostMeasureItem = ApiSchema<"UserPrepostMeasureItem">;
|
||||
export type UserPrepostMeasuresResponse = ApiSchema<"UserPrepostMeasuresResponse">;
|
||||
|
||||
export type RoleString = "learner" | "teacher" | "admin" | string;
|
||||
|
||||
|
|
@ -588,6 +593,13 @@ export const userApi = {
|
|||
updatePreferences: (body: UserPreferencesPatchRequest) =>
|
||||
apiFetch<UserPreferencesResponse>("/users/me/preferences", { method: "PATCH", body }),
|
||||
voicePresets: () => api.get<VoicePresetResponse[]>("/users/me/voice-presets"),
|
||||
supportTickets: () => api.get<UserSupportTicketsResponse>("/users/support-tickets"),
|
||||
prepostMeasures: (pilotId = "phase3-pilot-draft") =>
|
||||
api.get<UserPrepostMeasuresResponse>(
|
||||
`/users/me/prepost-measures?pilot_id=${encodeURIComponent(pilotId)}`,
|
||||
),
|
||||
upsertPrepostMeasure: (body: UserPrepostMeasureRequest) =>
|
||||
apiFetch<UserPrepostMeasureItem>("/users/me/prepost-measures", { method: "PUT", body }),
|
||||
};
|
||||
|
||||
export type AdminEngineConfigResponse = ApiSchema<"AdminEngineConfigResponse">;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue