namespace JobTrackerApi.Models; public sealed class TailoredCvDraft { public int Id { get; set; } public string OwnerUserId { get; set; } = string.Empty; public int JobApplicationId { get; set; } public JobApplication? JobApplication { get; set; } public int? CanonicalProfileVersion { get; set; } public string TemplateId { get; set; } = "ats-minimal"; public string? Headline { get; set; } public string? SummaryJson { get; set; } public string? SelectedSkillsJson { get; set; } public string? ExperienceJson { get; set; } public string? EducationJson { get; set; } public string? CustomSectionsJson { get; set; } public string? RenderOptionsJson { get; set; } public string? GenerationContextHash { get; set; } public DateTimeOffset? LastGeneratedAtUtc { get; set; } public DateTimeOffset? LastEditedAtUtc { get; set; } public string Status { get; set; } = "generated"; } public sealed class TailoredCvDocument { public string TemplateId { get; set; } = "ats-minimal"; public string? Headline { get; set; } public List Summary { get; set; } = new(); public List SelectedSkills { get; set; } = new(); public List Experience { get; set; } = new(); public List Education { get; set; } = new(); public List CustomSections { get; set; } = new(); public TailoredCvRenderOptions RenderOptions { get; set; } = new(); } public sealed class TailoredCvExperienceItem { public string? Title { get; set; } public string? Company { get; set; } public string? Location { get; set; } public string? Start { get; set; } public string? End { get; set; } public bool IsCurrent { get; set; } public List Bullets { get; set; } = new(); } public sealed class TailoredCvEducationItem { public string? Qualification { get; set; } public string? Institution { get; set; } public string? Location { get; set; } public string? Start { get; set; } public string? End { get; set; } public List Details { get; set; } = new(); } public sealed class TailoredCvCustomSection { public string? Title { get; set; } public List Items { get; set; } = new(); } public sealed class TailoredCvRenderOptions { public bool ShowPhoto { get; set; } public string PageMode { get; set; } = "one-page"; public string AccentColor { get; set; } = "slate"; public List SectionOrder { get; set; } = new() { "summary", "skills", "experience", "education", "custom" }; public string BulletDensity { get; set; } = "balanced"; }