using System.Collections.ObjectModel;
using System.Text.Json.Serialization;
namespace Jellyfin.Plugin.JRay.Models;
/// The server's reply to a manifest fetch (server spec §4).
public class ManifestFetchResponse
{
///
/// Gets or sets the cut-match tier that was achieved: exact,
/// audio, runtime or loose.
///
[JsonPropertyName("match")]
public string Match { get; set; } = string.Empty;
///
/// Gets or sets the offset, in seconds, the client must add to every window.
///
///
/// Non-zero only for an audio-tier match, where the same cut was
/// found at a different trim. The server returns the offset; the client
/// applies it — manifests are never rewritten, so one stored manifest
/// serves every trim of the same cut.
///
[JsonPropertyName("offset_sec")]
public double OffsetSec { get; set; }
/// Gets or sets the manifest itself.
[JsonPropertyName("manifest")]
public Jmanifest? Manifest { get; set; }
}