using System;
using System.Text.Json.Serialization;

namespace StellaOps.Feedser.Source.Kisa.Internal;

internal sealed class KisaDetailResponse
{
    [JsonPropertyName("idx")]
    public string? Idx { get; init; }

    [JsonPropertyName("title")]
    public string? Title { get; init; }

    [JsonPropertyName("summary")]
    public string? Summary { get; init; }

    [JsonPropertyName("contentHtml")]
    public string? ContentHtml { get; init; }

    [JsonPropertyName("severity")]
    public string? Severity { get; init; }

    [JsonPropertyName("published")]
    public DateTimeOffset? Published { get; init; }

    [JsonPropertyName("updated")]
    public DateTimeOffset? Updated { get; init; }

    [JsonPropertyName("cveIds")]
    public string[]? CveIds { get; init; }

    [JsonPropertyName("references")]
    public KisaReferenceDto[]? References { get; init; }

    [JsonPropertyName("products")]
    public KisaProductDto[]? Products { get; init; }
}

internal sealed class KisaReferenceDto
{
    [JsonPropertyName("url")]
    public string? Url { get; init; }

    [JsonPropertyName("label")]
    public string? Label { get; init; }
}

internal sealed class KisaProductDto
{
    [JsonPropertyName("vendor")]
    public string? Vendor { get; init; }

    [JsonPropertyName("name")]
    public string? Name { get; init; }

    [JsonPropertyName("versions")]
    public string? Versions { get; init; }
}
