using System; using System.Collections.Generic; using System.Linq; using Nest; using Newtonsoft.Json; namespace Sony.Filtr.AdminSearch.Models { [ElasticsearchType(IdProperty = "PlaylistId", Name = "AmazonPlaylistIndexItem")] public class AmazonPlaylistIndexItem { public AmazonPlaylistIndexItem() { } public AmazonPlaylistIndexItem(AmazonPlaylistItem item) { int tracksNumber = 0, dspPlaylistId = 0; int.TryParse(item.TracksNumber, out tracksNumber); int.TryParse(item.DspPlaylistId, out dspPlaylistId); AmazonPlaylistId = item.AmazonPlaylistId; CountryCode = item.CountryCode; DspPlaylistId = dspPlaylistId; ImageUri = item.ImageItem?.Uri; Name = item.Name; PlaylistId = item.PlaylistId; PlaylistUri = item.PlaylistUri; TracksNumber = tracksNumber; } [String(Analyzer = AdminSearchManager.AsciifoldingAnalyzerName, SearchAnalyzer = AdminSearchManager.AsciifoldingAnalyzerName)] public string Name { get; set; } public string PlaylistId { get; set; } public string PlaylistUri { get; set; } public int TracksNumber { get; set; } public string CountryCode { get; set; } public string Rank { get; set; } public int DspPlaylistId { get; set; } public string AmazonPlaylistId { get; set; } public string ImageUri { get; set; } } public class AmazonPlaylistItem { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("playlist_id")] public string PlaylistId { get; set; } [JsonProperty("uri")] public string PlaylistUri { get; set; } [JsonProperty("num_tracks")] public string TracksNumber { get; set; } [JsonProperty("country_code")] public string CountryCode { get; set; } [JsonProperty("rank")] public string Rank { get; set; } [JsonProperty("dsp_playlist_id")] public string DspPlaylistId { get; set; } [JsonProperty("amazon_playlist_id")] public string AmazonPlaylistId { get; set; } [JsonProperty("image")] public Image ImageItem { get; set; } } public class AmazonPlaylistsIndex { public AmazonPlaylistItem[] items; [JsonProperty("count")] public int Count { get; set; } } public class Image { [JsonProperty("uri")] public string Uri { get; set; } [JsonProperty("height")] public string Height { get; set; } [JsonProperty("width")] public string Width { get; set; } } public class Dsp { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("dsp_id")] public string DspId { get; set; } [JsonProperty("slug")] public string Slug { get; set; } } }