151 lines
4.9 KiB
C#
151 lines
4.9 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace ErsatzTV.Infrastructure.Search.Models;
|
|
|
|
public class ElasticSearchItem : MinimalElasticSearchItem
|
|
{
|
|
[JsonExtensionData]
|
|
public Dictionary<string, object> AdditionalProperties { get; set; } = new();
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.TitleField)]
|
|
public string Title { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.LibraryNameField)]
|
|
public string LibraryName { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.LibraryIdField)]
|
|
public int LibraryId { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.TitleAndYearField)]
|
|
public string TitleAndYear { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.StateField)]
|
|
public string State { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.MetadataKindField)]
|
|
public string MetadataKind { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.LanguageField)]
|
|
public List<string> Language { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.LanguageTagField)]
|
|
public List<string> LanguageTag { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.SubLanguageField)]
|
|
public List<string> SubLanguage { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.SubLanguageTagField)]
|
|
public List<string> SubLanguageTag { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ChaptersField)]
|
|
public int Chapters { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.MinutesField)]
|
|
public int Minutes { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.SecondsField)]
|
|
public int Seconds { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.HeightField)]
|
|
public int Height { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.WidthField)]
|
|
public int Width { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.VideoCodecField)]
|
|
public string VideoCodec { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.VideoBitDepthField)]
|
|
public int VideoBitDepth { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.VideoDynamicRangeField)]
|
|
public string VideoDynamicRange { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.CollectionField)]
|
|
public List<string> Collection { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ContentRatingField)]
|
|
public List<string> ContentRating { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ReleaseDateField)]
|
|
public string ReleaseDate { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.AddedDateField)]
|
|
public string AddedDate { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.AlbumField)]
|
|
public string Album { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.AlbumArtistField)]
|
|
public List<string> AlbumArtist { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.PlotField)]
|
|
public string Plot { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.GenreField)]
|
|
public List<string> Genre { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.TagField)]
|
|
public List<string> Tag { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.TagFullField)]
|
|
public List<string> TagFull { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.CountryField)]
|
|
public List<string> Country { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.StudioField)]
|
|
public List<string> Studio { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.NetworkField)]
|
|
public List<string> Network { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ArtistField)]
|
|
public List<string> Artist { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ActorField)]
|
|
public List<string> Actor { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.DirectorField)]
|
|
public List<string> Director { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.WriterField)]
|
|
public List<string> Writer { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.TraktListField)]
|
|
public List<string> TraktList { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.SeasonNumberField)]
|
|
public int SeasonNumber { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.EpisodeNumberField)]
|
|
public int EpisodeNumber { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ShowTitleField)]
|
|
public string ShowTitle { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ShowGenreField)]
|
|
public List<string> ShowGenre { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ShowTagField)]
|
|
public List<string> ShowTag { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ShowStudioField)]
|
|
public List<string> ShowStudio { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ShowNetworkField)]
|
|
public List<string> ShowNetwork { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.ShowContentRatingField)]
|
|
public List<string> ShowContentRating { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.StyleField)]
|
|
public List<string> Style { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.MoodField)]
|
|
public List<string> Mood { get; set; }
|
|
|
|
[JsonPropertyName(LuceneSearchIndex.LibraryFolderIdField)]
|
|
public int LibraryFolderId { get; set; }
|
|
}
|