app/types/job.ts (42 lines of code) (raw):

export interface Job { id: string; title: string; description: string; status: "pending" | "running" | "completed" | "failed"; createdAt: Date; updatedAt: Date; branch?: string; author?: string; tags?: string[]; repository?: { url: string; branch?: string; }; changes?: { additions: number; deletions: number; files: number; }; logs?: string; environment?: Record<string, string>; secrets?: Record<string, string>; apiJobId?: string; } export interface FileDiff { filename: string; status: "added" | "modified" | "deleted" | "renamed"; additions: number; deletions: number; patch: string; diff: string; // Alias for patch, both contain the same diff content oldFilename?: string; } export interface JobDiff { jobId: string; files: FileDiff[]; summary: { totalAdditions: number; totalDeletions: number; totalFiles: number; }; }