Spaces:
Sleeping
Sleeping
File size: 1,654 Bytes
a0da743 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | export interface InterviewRole {
id: string;
title: string;
icon: string;
description: string;
color: string;
gradient: string;
topics: string[];
}
export interface InterviewConfig {
role: InterviewRole;
difficulty: 'beginner' | 'intermediate' | 'advanced';
questionCount: number;
timeLimit: number; // in minutes, 0 = unlimited
}
export interface Question {
id: number;
text: string;
category: string;
difficulty: string;
}
export interface Answer {
questionId: number;
text: string;
timestamp: number;
}
export interface Evaluation {
questionId: number;
score: number; // 0-10
relevance: number; // 0-10
clarity: number; // 0-10
technicalAccuracy: number; // 0-10
confidence: number; // 0-10
strengths: string[];
weaknesses: string[];
suggestions: string[];
sampleAnswer: string;
}
export interface ChatMessage {
id: string;
role: 'ai' | 'user';
content: string;
timestamp: number;
questionId?: number;
evaluation?: Evaluation;
}
export interface SessionSummary {
totalScore: number;
averageScore: number;
totalQuestions: number;
answeredQuestions: number;
strengths: string[];
weaknesses: string[];
recommendations: string[];
categoryScores: { category: string; score: number }[];
overallFeedback: string;
}
export interface InterviewSession {
id: string;
config: InterviewConfig;
questions: Question[];
answers: Answer[];
evaluations: Evaluation[];
messages: ChatMessage[];
currentQuestionIndex: number;
status: 'setup' | 'in-progress' | 'evaluating' | 'completed';
startedAt: number;
completedAt?: number;
summary?: SessionSummary;
}
|