namespace PlotLine.Models; public sealed class HelpArticle { public string Title { get; set; } = string.Empty; public string Category { get; set; } = string.Empty; public string CategorySlug { get; set; } = string.Empty; public IReadOnlyList Tags { get; set; } = []; public string ContextKey { get; set; } = string.Empty; public string Slug { get; set; } = string.Empty; public string Micro { get; set; } = string.Empty; public string QuickTitle { get; set; } = string.Empty; public string QuickSummary { get; set; } = string.Empty; public string Screenshot { get; set; } = string.Empty; public string MarkdownContent { get; set; } = string.Empty; public string RelativePath { get; set; } = string.Empty; public DateTime LastModifiedUtc { get; set; } public IReadOnlyList ValidationIssues { get; set; } = []; public string CategoryUrl => $"/help/{CategorySlug}"; public string Url => $"/help/{CategorySlug}/{Slug}"; public bool IsValid => ValidationIssues.Count == 0; } public sealed class HelpCoverageItem { public string ContextKey { get; set; } = string.Empty; public string FilePath { get; set; } = string.Empty; public bool IsValid { get; set; } public IReadOnlyList ValidationIssues { get; set; } = []; }