// CV Profile Data Model Interfaces export interface CVProfile { id: string; // UUID fileName: string; // Original CV filename uploadDate: Date; // When uploaded personalInfo: PersonalInfo; // Extracted personal details experience: WorkExperience[]; // Job history education: Education[]; // Educational background skills: Skill[]; // Technical and soft skills certifications: Certification[]; // Professional certifications languages: Language[]; // Spoken languages parsedText: string; // Full extracted text extractedText?: string; // Alternative property name for compatibility lastModified: Date; // Last update timestamp sensitiveDataWarnings?: string[]; // Warnings about sensitive information } export interface PersonalInfo { fullName: string; email: string; phone: string; location: string; linkedIn?: string; github?: string; website?: string; } export interface WorkExperience { id: string; company: string; position: string; startDate: Date; endDate?: Date; // null for current position description: string; technologies: string[]; // Tech stack used achievements: string[]; // Key accomplishments } export interface Education { id: string; institution: string; degree: string; field: string; startDate: Date; endDate?: Date; gpa?: number; honors?: string[]; } export interface Skill { id: string; name: string; category: SkillCategory; // Technical, Soft, Language, etc. proficiency: SkillLevel; // Beginner, Intermediate, Advanced, Expert yearsOfExperience?: number; lastUsed?: Date; } export interface Certification { id: string; name: string; issuer: string; issueDate: Date; expiryDate?: Date; credentialId?: string; } export interface Language { id: string; name: string; proficiency: LanguageProficiency; // Native, Fluent, Conversational, Basic } // Enumerations for CV Profile export enum SkillCategory { TECHNICAL = 'technical', SOFT = 'soft', LANGUAGE = 'language', CERTIFICATION = 'certification' } export enum SkillLevel { BEGINNER = 'beginner', INTERMEDIATE = 'intermediate', ADVANCED = 'advanced', EXPERT = 'expert' } export enum LanguageProficiency { NATIVE = 'native', FLUENT = 'fluent', CONVERSATIONAL = 'conversational', BASIC = 'basic' } // Utility types for CV processing export interface CVParsingResult { profile: CVProfile; confidence: number; warnings: string[]; suggestions: string[]; } export interface CVCorrections { personalInfo?: Partial; experience?: WorkExperience[]; education?: Education[]; skills?: Skill[]; certifications?: Certification[]; languages?: Language[]; } export interface ParsingAccuracy { overall: number; personalInfo: number; experience: number; education: number; skills: number; certifications: number; }