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);