namespace JobTrackerApi.Models; public sealed class StructuredCvProfile { public string Version { get; set; } = "1"; public StructuredCvMetadata Metadata { get; set; } = new(); public StructuredCvContact Contact { get; set; } = new(); public List Summary { get; set; } = new(); public List Jobs { get; set; } = new(); public List Education { get; set; } = new(); public List Skills { get; set; } = new(); public List Languages { get; set; } = new(); public List Interests { get; set; } = new(); public List OtherSections { get; set; } = new(); public List Sections { get; set; } = new(); } public sealed class StructuredCvMetadata { public int? ProfileVersion { get; set; } public int? AppliedExtractionRunId { get; set; } public DateTimeOffset? UpdatedAtUtc { get; set; } public Dictionary Fields { get; set; } = new(); } public sealed class StructuredCvFieldMetadata { public double? Confidence { get; set; } public string? Method { get; set; } public string? SourceSnippet { get; set; } public int? SourcePage { get; set; } public string? SourceBlockId { get; set; } public string? ReviewState { get; set; } public DateTimeOffset? LastUpdatedAtUtc { get; set; } } public sealed class StructuredCvContact { public string? FullName { get; set; } public string? Headline { get; set; } public string? Email { get; set; } public string? Phone { get; set; } public string? Location { get; set; } public string? Website { get; set; } public string? LinkedIn { get; set; } } public sealed class StructuredCvJob { 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 List Skills { get; set; } = new(); } public sealed class StructuredCvEducation { 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 StructuredCvLanguage { public string? Name { get; set; } public string? Level { get; set; } public string? Notes { get; set; } } public sealed class StructuredCvOtherSection { public string? Title { get; set; } public List Items { get; set; } = new(); } public sealed class StructuredCvSection { public string Name { get; set; } = string.Empty; public string Content { get; set; } = string.Empty; public int WordCount { get; set; } }