using System.Collections.Generic;
using Jellyfin.Data.Enums;
namespace Jellyfin.Api.Models.DisplayPreferencesDtos
{
    /// 
    /// Defines the display preferences for any item that supports them (usually Folders).
    /// 
    public class DisplayPreferencesDto
    {
        /// 
        /// Initializes a new instance of the  class.
        /// 
        public DisplayPreferencesDto()
        {
            RememberIndexing = false;
            PrimaryImageHeight = 250;
            PrimaryImageWidth = 250;
            ShowBackdrop = true;
            CustomPrefs = new Dictionary();
        }
        /// 
        /// Gets or sets the user id.
        /// 
        /// The user id.
        public string? Id { get; set; }
        /// 
        /// Gets or sets the type of the view.
        /// 
        /// The type of the view.
        public string? ViewType { get; set; }
        /// 
        /// Gets or sets the sort by.
        /// 
        /// The sort by.
        public string? SortBy { get; set; }
        /// 
        /// Gets or sets the index by.
        /// 
        /// The index by.
        public string? IndexBy { get; set; }
        /// 
        /// Gets or sets a value indicating whether [remember indexing].
        /// 
        /// true if [remember indexing]; otherwise, false.
        public bool RememberIndexing { get; set; }
        /// 
        /// Gets or sets the height of the primary image.
        /// 
        /// The height of the primary image.
        public int PrimaryImageHeight { get; set; }
        /// 
        /// Gets or sets the width of the primary image.
        /// 
        /// The width of the primary image.
        public int PrimaryImageWidth { get; set; }
        /// 
        /// Gets the custom prefs.
        /// 
        /// The custom prefs.
        public Dictionary CustomPrefs { get; }
        /// 
        /// Gets or sets the scroll direction.
        /// 
        /// The scroll direction.
        public ScrollDirection ScrollDirection { get; set; }
        /// 
        /// Gets or sets a value indicating whether to show backdrops on this item.
        /// 
        /// true if showing backdrops; otherwise, false.
        public bool ShowBackdrop { get; set; }
        /// 
        /// Gets or sets a value indicating whether [remember sorting].
        /// 
        /// true if [remember sorting]; otherwise, false.
        public bool RememberSorting { get; set; }
        /// 
        /// Gets or sets the sort order.
        /// 
        /// The sort order.
        public SortOrder SortOrder { get; set; }
        /// 
        /// Gets or sets a value indicating whether [show sidebar].
        /// 
        /// true if [show sidebar]; otherwise, false.
        public bool ShowSidebar { get; set; }
        /// 
        /// Gets or sets the client.
        /// 
        public string? Client { get; set; }
    }
}