60 lines
1.1 KiB
TypeScript
60 lines
1.1 KiB
TypeScript
export interface AssessmentProfile {
|
|
id: string;
|
|
name: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
export interface ScoreMetric {
|
|
key: string;
|
|
label: string;
|
|
value: number;
|
|
max?: number;
|
|
level?: string;
|
|
}
|
|
|
|
export interface ScoreSummary {
|
|
primary?: ScoreMetric;
|
|
metrics: ScoreMetric[];
|
|
note?: string;
|
|
}
|
|
|
|
export interface RecordedAnswer {
|
|
questionId: number;
|
|
question: string;
|
|
value: string;
|
|
answer: string;
|
|
}
|
|
|
|
export interface AssessmentRecord {
|
|
id: string;
|
|
profileId: string;
|
|
questionnaireId: string;
|
|
questionnaireTitle: string;
|
|
category: string;
|
|
completedAt: string;
|
|
answers: RecordedAnswer[];
|
|
scoreSummary: ScoreSummary;
|
|
analysisText?: string;
|
|
retestSuitable?: boolean;
|
|
recommendedInterval?: '1年' | '3个月' | '一次即可';
|
|
}
|
|
|
|
export interface EncryptedMindScopeBackup {
|
|
format: 'mindscope-encrypted-backup';
|
|
version: 1;
|
|
algorithm: 'AES-GCM';
|
|
iterations: number;
|
|
salt: string;
|
|
iv: string;
|
|
data: string;
|
|
}
|
|
|
|
export interface MindScopeBackup {
|
|
format: 'mindscope-backup';
|
|
version: 1;
|
|
exportedAt: string;
|
|
profiles: AssessmentProfile[];
|
|
records: AssessmentRecord[];
|
|
}
|