39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace Jellyfin.Plugin.JRay.Models;
|
|
|
|
/// <summary>
|
|
/// A single prioritise/ignore rule. A rule is uniquely identified by its
|
|
/// <see cref="Scope"/> and <see cref="Value"/>; setting a new action for an
|
|
/// existing scope+value replaces the previous one.
|
|
/// </summary>
|
|
public class MediaPolicyRule
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the scope this rule targets (genre, series, or item).
|
|
/// </summary>
|
|
[JsonPropertyName("scope")]
|
|
public PolicyScope Scope { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the target value: a genre name for <see cref="PolicyScope.Genre"/>,
|
|
/// a series id for <see cref="PolicyScope.Series"/>, or an item id for
|
|
/// <see cref="PolicyScope.Item"/>.
|
|
/// </summary>
|
|
[JsonPropertyName("value")]
|
|
public string Value { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the action to apply (prioritise or ignore).
|
|
/// </summary>
|
|
[JsonPropertyName("action")]
|
|
public PolicyAction Action { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets an optional human-readable label for the target (e.g. the
|
|
/// series or item display name), shown in the rules list. Informational only.
|
|
/// </summary>
|
|
[JsonPropertyName("label")]
|
|
public string Label { get; set; } = string.Empty;
|
|
}
|