using System.Collections.ObjectModel;
using System.Text.Json.Serialization;
namespace Jellyfin.Plugin.JRay.Models;
/// Cut fingerprint (server spec §2, §3).
public class JmanifestCut
{
/// Gets or sets the decoded duration the timings came from.
[JsonPropertyName("runtime_sec")]
public double RuntimeSec { get; set; }
/// Gets or sets the container duration, if it differs.
[JsonPropertyName("container_duration_sec")]
public double? ContainerDurationSec { get; set; }
///
/// Gets or sets the OpenSubtitles file hash, as a server may report it.
///
///
/// Read-only in practice: the plugin never sends one. The file-hash
/// match tier is withdrawn on legal grounds — see
/// — because a file hash identifies the
/// exact release a user holds rather than the cut the timings describe.
///
[JsonPropertyName("video_hash")]
public string? VideoHash { get; set; }
/// Gets or sets the version-prefixed spectral-peak signature.
[JsonPropertyName("audio_signature")]
public string? AudioSignature { get; set; }
}