Files

72 lines
2.7 KiB
C#

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? QualificationLevel { 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";
}