2
0

IItemRepository.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #nullable disable
  2. #pragma warning disable CS1591
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Threading;
  6. using Jellyfin.Data.Enums;
  7. using MediaBrowser.Controller.Entities;
  8. using MediaBrowser.Model.Dto;
  9. using MediaBrowser.Model.Querying;
  10. namespace MediaBrowser.Controller.Persistence;
  11. /// <summary>
  12. /// Provides an interface to implement an Item repository.
  13. /// </summary>
  14. public interface IItemRepository
  15. {
  16. /// <summary>
  17. /// Deletes the item.
  18. /// </summary>
  19. /// <param name="id">The identifier.</param>
  20. void DeleteItem(Guid id);
  21. /// <summary>
  22. /// Saves the items.
  23. /// </summary>
  24. /// <param name="items">The items.</param>
  25. /// <param name="cancellationToken">The cancellation token.</param>
  26. void SaveItems(IReadOnlyList<BaseItem> items, CancellationToken cancellationToken);
  27. void SaveImages(BaseItem item);
  28. /// <summary>
  29. /// Retrieves the item.
  30. /// </summary>
  31. /// <param name="id">The id.</param>
  32. /// <returns>BaseItem.</returns>
  33. BaseItem RetrieveItem(Guid id);
  34. /// <summary>
  35. /// Gets the items.
  36. /// </summary>
  37. /// <param name="filter">The query.</param>
  38. /// <returns>QueryResult&lt;BaseItem&gt;.</returns>
  39. QueryResult<BaseItem> GetItems(InternalItemsQuery filter);
  40. /// <summary>
  41. /// Gets the item ids list.
  42. /// </summary>
  43. /// <param name="filter">The query.</param>
  44. /// <returns>List&lt;Guid&gt;.</returns>
  45. IReadOnlyList<Guid> GetItemIdsList(InternalItemsQuery filter);
  46. /// <summary>
  47. /// Gets the item list.
  48. /// </summary>
  49. /// <param name="filter">The query.</param>
  50. /// <returns>List&lt;BaseItem&gt;.</returns>
  51. IReadOnlyList<BaseItem> GetItemList(InternalItemsQuery filter);
  52. /// <summary>
  53. /// Gets the item list. Used mainly by the Latest api endpoint.
  54. /// </summary>
  55. /// <param name="filter">The query.</param>
  56. /// <param name="collectionType">Collection Type.</param>
  57. /// <returns>List&lt;BaseItem&gt;.</returns>
  58. IReadOnlyList<BaseItem> GetLatestItemList(InternalItemsQuery filter, CollectionType collectionType);
  59. /// <summary>
  60. /// Gets the list of series presentation keys for next up.
  61. /// </summary>
  62. /// <param name="filter">The query.</param>
  63. /// <param name="dateCutoff">The minimum date for a series to have been most recently watched.</param>
  64. /// <returns>The list of keys.</returns>
  65. IReadOnlyList<string> GetNextUpSeriesKeys(InternalItemsQuery filter, DateTime dateCutoff);
  66. /// <summary>
  67. /// Updates the inherited values.
  68. /// </summary>
  69. void UpdateInheritedValues();
  70. int GetCount(InternalItemsQuery filter);
  71. QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetGenres(InternalItemsQuery filter);
  72. QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetMusicGenres(InternalItemsQuery filter);
  73. QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetStudios(InternalItemsQuery filter);
  74. QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetArtists(InternalItemsQuery filter);
  75. QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetAlbumArtists(InternalItemsQuery filter);
  76. QueryResult<(BaseItem Item, ItemCounts ItemCounts)> GetAllArtists(InternalItemsQuery filter);
  77. IReadOnlyList<string> GetMusicGenreNames();
  78. IReadOnlyList<string> GetStudioNames();
  79. IReadOnlyList<string> GetGenreNames();
  80. IReadOnlyList<string> GetAllArtistNames();
  81. }