namespace JobTrackerApi.Models; // Generic persistence for per-job AI workspace outputs whose shape is irregular/nested enough // that per-field columns (as used by InterviewPrepNote) would be unreasonable -- candidate fit // and focus plan each make several AI calls and return DTOs with 6-13 fields including nested // objects. One row per (owner, job, note type); ResultJson is the serialized DTO. See // career-workspace-implementation-roadmap.md Phase F5 -- "persist interview prep / fit outputs". public sealed class AiWorkspaceNote { public int Id { get; set; } public string OwnerUserId { get; set; } = string.Empty; public int JobApplicationId { get; set; } public JobApplication? JobApplication { get; set; } // "candidate-fit" | "focus-plan" public string NoteType { get; set; } = string.Empty; public string AttachmentContextSignature { get; set; } = string.Empty; public string ResultJson { get; set; } = string.Empty; public DateTimeOffset GeneratedAtUtc { get; set; } = DateTimeOffset.UtcNow; }