Files
framit/app/types/resume.ts
T

62 lines
1.4 KiB
TypeScript

import type { TimelineItem } from '@nuxt/ui';
import type { Tool } from './tool';
import { timeToString, type TimePeriod } from './time';
export interface ResumeExperience {
dates: TimePeriod;
title: string;
company: string;
description: string;
tools: Tool[];
icon: string;
}
export class ResumeExperienceTimelineItem implements TimelineItem {
tools: Tool[];
description?: string;
date: string;
title: string;
icon: string;
constructor(from: ResumeExperience) {
this.date = timeToString(from.dates);
this.title = `${from.title}${from.company}`;
this.description = from.description;
this.icon = from.icon;
this.tools = from.tools;
}
}
export interface Education {
dates: TimePeriod;
degree: string;
institution: string;
location: string;
description?: string;
icon: string;
}
export class EducationTimelineItem implements TimelineItem {
date: string;
description?: string;
title: string;
icon: string;
constructor(from: Education) {
this.date = timeToString(from.dates);
this.description = from.description;
this.title = `${from.degree}${from.institution}, ${from.location}`;
this.icon = from.icon;
}
}
export class ResumeContent {
experience: ResumeExperience[] = [];
education: Education[] = [];
otherTools: Tool[] = [];
devops: Tool[] = [];
os: Tool[] = [];
programmingLanguages: Tool[] = [];
frameworks: Tool[] = [];
}