using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;

namespace Jellyfin.Plugin.SRFPlay.Api.Models;

/// <summary>
/// Represents the data container in a Play v3 response.
/// </summary>
/// <typeparam name="T">The type of data items.</typeparam>
public class PlayV3DataContainer<T>
{
    /// <summary>
    /// Gets or sets the list of data items.
    /// </summary>
    [JsonPropertyName("data")]
    [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "Required for JSON deserialization")]
    [SuppressMessage("Design", "CA1002:Do not expose generic lists", Justification = "DTO for JSON deserialization")]
    public List<T>? Data { get; set; }

    /// <summary>
    /// Gets or sets the next page cursor.
    /// </summary>
    [JsonPropertyName("next")]
    public string? Next { get; set; }
}
