using System.Text.Json.Serialization; namespace ErsatzTV.Infrastructure.Search.Models; public class ElasticSearchItem : MinimalElasticSearchItem { [JsonExtensionData] public Dictionary 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 Language { get; set; } [JsonPropertyName(LuceneSearchIndex.LanguageTagField)] public List LanguageTag { get; set; } [JsonPropertyName(LuceneSearchIndex.SubLanguageField)] public List SubLanguage { get; set; } [JsonPropertyName(LuceneSearchIndex.SubLanguageTagField)] public List SubLanguageTag { 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.VideoDynamicRange)] public string VideoDynamicRange { get; set; } [JsonPropertyName(LuceneSearchIndex.ContentRatingField)] public List 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 AlbumArtist { get; set; } [JsonPropertyName(LuceneSearchIndex.PlotField)] public string Plot { get; set; } [JsonPropertyName(LuceneSearchIndex.GenreField)] public List Genre { get; set; } [JsonPropertyName(LuceneSearchIndex.TagField)] public List Tag { get; set; } [JsonPropertyName(LuceneSearchIndex.TagFullField)] public List TagFull { get; set; } [JsonPropertyName(LuceneSearchIndex.StudioField)] public List Studio { get; set; } [JsonPropertyName(LuceneSearchIndex.ArtistField)] public List Artist { get; set; } [JsonPropertyName(LuceneSearchIndex.ActorField)] public List Actor { get; set; } [JsonPropertyName(LuceneSearchIndex.DirectorField)] public List Director { get; set; } [JsonPropertyName(LuceneSearchIndex.WriterField)] public List Writer { get; set; } [JsonPropertyName(LuceneSearchIndex.TraktListField)] public List 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 ShowGenre { get; set; } [JsonPropertyName(LuceneSearchIndex.ShowTagField)] public List ShowTag { get; set; } [JsonPropertyName(LuceneSearchIndex.ShowStudioField)] public List ShowStudio { get; set; } [JsonPropertyName(LuceneSearchIndex.ShowContentRatingField)] public List ShowContentRating { get; set; } [JsonPropertyName(LuceneSearchIndex.StyleField)] public List Style { get; set; } [JsonPropertyName(LuceneSearchIndex.MoodField)] public List Mood { get; set; } [JsonPropertyName(LuceneSearchIndex.LibraryFolderIdField)] public int LibraryFolderId { get; set; } }