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

namespace Jellyfin.Plugin.SRFPlay.Api.Models;

/// <summary>
/// Represents the root media composition response from SRF API.
/// </summary>
public class MediaComposition
{
    /// <summary>
    /// Gets or sets the list of chapters (videos/episodes).
    /// </summary>
    [JsonPropertyName("chapterList")]
    public IReadOnlyList<Chapter> ChapterList { get; set; } = new List<Chapter>();

    /// <summary>
    /// Gets a value indicating whether this composition has any chapters.
    /// </summary>
    [JsonIgnore]
    public bool HasChapters => ChapterList != null && ChapterList.Count > 0;

    /// <summary>
    /// Gets or sets the episode information.
    /// </summary>
    [JsonPropertyName("episode")]
    public Episode? Episode { get; set; }

    /// <summary>
    /// Gets or sets the show information.
    /// </summary>
    [JsonPropertyName("show")]
    public Show? Show { get; set; }
}
