Add CV template preview and PDF export pipeline
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
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<string> Summary { get; set; } = new();
|
||||
public List<string> SelectedSkills { get; set; } = new();
|
||||
public List<TailoredCvExperienceItem> Experience { get; set; } = new();
|
||||
public List<TailoredCvEducationItem> Education { get; set; } = new();
|
||||
public List<TailoredCvCustomSection> 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<string> 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<string> Details { get; set; } = new();
|
||||
}
|
||||
|
||||
public sealed class TailoredCvCustomSection
|
||||
{
|
||||
public string? Title { get; set; }
|
||||
public List<string> 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<string> SectionOrder { get; set; } = new() { "summary", "skills", "experience", "education", "custom" };
|
||||
public string BulletDensity { get; set; } = "balanced";
|
||||
}
|
||||
Reference in New Issue
Block a user