namespace EmbyToolbox.Models; /// Как сопоставлена дорожка текущего файла со snapshot. public enum MatchingStrategy { None, /// Type + Source + язык + порядковый номер внутри этой группы (как в текущем файле). OrdinalByTypeSourceLanguage } /// Результат сопоставления одной дорожки текущего файла. public sealed class TrackMatchResult { public int CurrentOrder { get; init; } public bool IsMatched { get; init; } public MatchingStrategy Strategy { get; init; } public bool HadAmbiguousCandidates { get; init; } public TrackSettingsSnapshotItem? SourceItem { get; init; } public TrackActionKind ResolvedAction { get; init; } } public enum SnapshotApplyDegree { None, Partial, Full } public enum SnapshotApplyReason { NoSnapshot, ScopeMismatch, Success } public readonly record struct SnapshotApplyResult( bool AppliedAny, SnapshotApplyDegree Degree, SnapshotApplyReason Reason, IReadOnlyList? TrackResults);