using System; using System.Collections.Generic; using Sony.Filtr.AdminAPI.ViewModels.PlaylistCuration; using Sony.Filtr.Utility; namespace Sony.Filtr.AdminAPI.ViewModels { public class EditorialPlaylistViewModel : IStreamSummaryViewModel { public int? Id { get; set; } public string ExternalId { get { if (Id != null) { return CleanName(Id.Value, Name); } return null; } } public string Name { get; set; } public string SpotifyLink { get; set; } public int Priority { get; set; } public int PriorityLevel { get; set; } public string ImageFileName { get; set; } public bool Active { get; set; } public uint Subscribers { get; set; } public uint PreviousSubscribers { get; set; } public string SpotifyImageFileName { get; set; } public string DisplayName { get; set; } public string CountryCode { get; set; } public bool ThemeActive { get; set; } public string BackgroundColor { get; set; } public string HeaderBackgroundColor { get; set; } public string AccentColor { get; set; } public string TextColor { get; set; } public string Description { get; set; } public string HeaderImageUrl { get; set; } //public List SubscribersTrend { get; set; } public string SpotifyDescription { get; set; } public IEnumerable Tags { get; set; } public IEnumerable Artists { get; set; } private string CleanName(int id, string name) { //TODO: This code is duplicated in API PlaylistViewModel. return TextUtility.GenerateSlug(name) + "_" + id; } public string TracksLastAdded { get; set; } public int TracksAddedInWeek { get; set; } public int TracksAddedToday { get; set; } public int TrackDuration { get; set; } public int TracksCount { get; set; } public long? FollowerChange7 { get; set; } public long? FollowerChange15 { get; set; } public long? FollowerChange30 { get; set; } public double? SonyPercentage { get; set; } public double? Energy { get; set; } public double? Hotness { get; set; } public double? Tempo { get; set; } public int? BuzzCategoryId { get; set; } public int? GlobalStreams28days { get; set; } public int? GlobalStreams7days { get; set; } public int? GlobalStreamsLatest { get; set; } public int? GlobalUsers28days{ get; set; } public int? GlobalUsers7days { get; set; } public int? GlobalUsersLatest { get; set; } public int? LocalStreams28days { get; set; } public int? LocalStreams7days { get; set; } public int? LocalStreamsLatest { get; set; } public int? LocalUsers28days { get; set; } public int? LocalUsers7days { get; set; } public int? LocalUsersLatest { get; set; } public DateTime? LatestStreamsDate { get; set; } public string OwnerDisplayName { get; set; } public string OwnerUsername { get; set; } } }