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<string> 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<string> 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<string> ValidationIssues { get; set; } = [];
}
