48 lines
1.0 KiB
TypeScript
48 lines
1.0 KiB
TypeScript
export type Language = 'en' | 'zh';
|
|
|
|
export interface LocalizedString {
|
|
en: string;
|
|
zh: string;
|
|
}
|
|
|
|
export interface ExperienceItem {
|
|
company: LocalizedString;
|
|
role: LocalizedString;
|
|
period: string;
|
|
description: LocalizedString[];
|
|
location?: LocalizedString;
|
|
}
|
|
|
|
export interface ProjectItem {
|
|
title: LocalizedString;
|
|
description: LocalizedString;
|
|
link?: string;
|
|
linkText?: LocalizedString;
|
|
techStack?: string[];
|
|
imageUrl?: string; // Added field for project images
|
|
imageType?: 'code' | 'car' | 'game' | 'chart'; // For placeholder selection fallback
|
|
}
|
|
|
|
export interface EducationItem {
|
|
school: LocalizedString;
|
|
degree: LocalizedString;
|
|
period: string;
|
|
major: LocalizedString;
|
|
}
|
|
|
|
export interface ContactInfo {
|
|
mobile: string;
|
|
email: string;
|
|
wechat: string;
|
|
}
|
|
|
|
export interface ResumeData {
|
|
name: LocalizedString;
|
|
title: LocalizedString;
|
|
summary: LocalizedString;
|
|
contact: ContactInfo;
|
|
skills: LocalizedString[];
|
|
experience: ExperienceItem[];
|
|
projects: ProjectItem[];
|
|
education: EducationItem[];
|
|
} |