DisplayPreferences.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.ComponentModel.DataAnnotations.Schema;
  5. using Jellyfin.Data.Enums;
  6. namespace Jellyfin.Data.Entities
  7. {
  8. /// <summary>
  9. /// An entity representing a user's display preferences.
  10. /// </summary>
  11. public class DisplayPreferences
  12. {
  13. /// <summary>
  14. /// Initializes a new instance of the <see cref="DisplayPreferences"/> class.
  15. /// </summary>
  16. /// <param name="client">The client string.</param>
  17. /// <param name="userId">The user's id.</param>
  18. public DisplayPreferences(string client, Guid userId)
  19. {
  20. RememberIndexing = false;
  21. ShowBackdrop = true;
  22. Client = client;
  23. UserId = userId;
  24. HomeSections = new HashSet<HomeSection>();
  25. }
  26. /// <summary>
  27. /// Initializes a new instance of the <see cref="DisplayPreferences"/> class.
  28. /// </summary>
  29. protected DisplayPreferences()
  30. {
  31. }
  32. /// <summary>
  33. /// Gets or sets the Id.
  34. /// </summary>
  35. /// <remarks>
  36. /// Required.
  37. /// </remarks>
  38. [Required]
  39. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  40. public int Id { get; protected set; }
  41. /// <summary>
  42. /// Gets or sets the user Id.
  43. /// </summary>
  44. /// <remarks>
  45. /// Required.
  46. /// </remarks>
  47. [Required]
  48. public Guid UserId { get; set; }
  49. /// <summary>
  50. /// Gets or sets the id of the associated item.
  51. /// </summary>
  52. /// <remarks>
  53. /// This is currently unused. In the future, this will allow us to have users set
  54. /// display preferences per item.
  55. /// </remarks>
  56. public Guid? ItemId { get; set; }
  57. /// <summary>
  58. /// Gets or sets the client string.
  59. /// </summary>
  60. /// <remarks>
  61. /// Required. Max Length = 64.
  62. /// </remarks>
  63. [Required]
  64. [MaxLength(64)]
  65. [StringLength(64)]
  66. public string Client { get; set; }
  67. /// <summary>
  68. /// Gets or sets a value indicating whether the indexing should be remembered.
  69. /// </summary>
  70. /// <remarks>
  71. /// Required.
  72. /// </remarks>
  73. [Required]
  74. public bool RememberIndexing { get; set; }
  75. /// <summary>
  76. /// Gets or sets a value indicating whether the sorting type should be remembered.
  77. /// </summary>
  78. /// <remarks>
  79. /// Required.
  80. /// </remarks>
  81. [Required]
  82. public bool RememberSorting { get; set; }
  83. /// <summary>
  84. /// Gets or sets the sort order.
  85. /// </summary>
  86. /// <remarks>
  87. /// Required.
  88. /// </remarks>
  89. [Required]
  90. public SortOrder SortOrder { get; set; }
  91. /// <summary>
  92. /// Gets or sets a value indicating whether to show the sidebar.
  93. /// </summary>
  94. /// <remarks>
  95. /// Required.
  96. /// </remarks>
  97. [Required]
  98. public bool ShowSidebar { get; set; }
  99. /// <summary>
  100. /// Gets or sets a value indicating whether to show the backdrop.
  101. /// </summary>
  102. /// <remarks>
  103. /// Required.
  104. /// </remarks>
  105. [Required]
  106. public bool ShowBackdrop { get; set; }
  107. /// <summary>
  108. /// Gets or sets what the view should be sorted by.
  109. /// </summary>
  110. public string SortBy { get; set; }
  111. /// <summary>
  112. /// Gets or sets the view type.
  113. /// </summary>
  114. public ViewType? ViewType { get; set; }
  115. /// <summary>
  116. /// Gets or sets the scroll direction.
  117. /// </summary>
  118. /// <remarks>
  119. /// Required.
  120. /// </remarks>
  121. [Required]
  122. public ScrollDirection ScrollDirection { get; set; }
  123. /// <summary>
  124. /// Gets or sets what the view should be indexed by.
  125. /// </summary>
  126. public IndexingKind? IndexBy { get; set; }
  127. /// <summary>
  128. /// Gets or sets the home sections.
  129. /// </summary>
  130. public virtual ICollection<HomeSection> HomeSections { get; protected set; }
  131. }
  132. }