Files
jobtrackingapp/job-tracker-ui/src/types.ts
T
2026-03-21 14:02:19 +01:00

93 lines
1.8 KiB
TypeScript

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;
}