using System.Collections.Immutable; using System.Text.Json.Serialization; namespace StellaOps.Feedser.Source.Ru.Nkcki.Internal; internal sealed record RuNkckiVulnerabilityDto( string? FstecId, string? MitreId, DateTimeOffset? DatePublished, DateTimeOffset? DateUpdated, string? CvssRating, bool? PatchAvailable, string? Description, RuNkckiCweDto? Cwe, ImmutableArray ProductCategories, string? Mitigation, string? VulnerableSoftwareText, bool? VulnerableSoftwareHasCpe, ImmutableArray VulnerableSoftwareEntries, double? CvssScore, string? CvssVector, double? CvssScoreV4, string? CvssVectorV4, string? Impact, string? MethodOfExploitation, bool? UserInteraction, ImmutableArray Urls, ImmutableArray Tags) { [JsonIgnore] public string AdvisoryKey => !string.IsNullOrWhiteSpace(FstecId) ? FstecId! : !string.IsNullOrWhiteSpace(MitreId) ? MitreId! : Guid.NewGuid().ToString(); } internal sealed record RuNkckiCweDto(int? Number, string? Description); internal sealed record RuNkckiSoftwareEntry(string Identifier, string Evidence, ImmutableArray RangeExpressions);