export interface Company { id: number; name: string; location?: string; source?: string; recruiterName?: string; recruiterEmail?: string; recruiterLinkedIn?: string; lastContactedAt?: string; nextContactAt?: string; pipelineStage?: string; } export interface JobApplication { id: number; jobTitle: string; company: Company; companyId?: number; status: string; dateApplied: string; location?: string; salary?: string; nextAction?: string; followUpAt?: string; feedbackRequestedAt?: string; responseReceived: boolean; responseDate?: string; description?: string; translatedDescription?: string; descriptionLanguage?: string; tags?: string; // JSON array string deadline?: string; notes?: string; coverLetterText?: string; jobUrl?: string; shortSummary?: string; fullSummary?: string | null; hasResume?: boolean; hasCoverLetter?: boolean; hasPortfolio?: boolean; hasOtherAttachment?: boolean; daysSince: number; isDeleted?: boolean; deletedAt?: string; needsFollowUp?: boolean; followUpReason?: string; } export interface CorrespondenceMessage { id: number; jobApplicationId: number; from: string; content: string; subject?: string; channel?: string; date: string; } export interface GmailStatus { connected: boolean; gmailAddress?: string; connectedAt?: string; lastSyncedAt?: string; } export interface GmailMessageSummary { id: string; threadId: string; subject: string; from: string; to: string; date?: string; snippet: string; } export interface JobImportResult { title?: string; company?: string; location?: string; description?: string; translatedDescription?: string; language?: string; tags: string[]; sourceUrl: string; deadline?: string; success: boolean; parser?: string; error?: string; }