IItemTypeLookup.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Collections.Generic;
  3. using Jellyfin.Data.Enums;
  4. using MediaBrowser.Model.Querying;
  5. namespace MediaBrowser.Controller.Persistence;
  6. /// <summary>
  7. /// Provides static lookup data for <see cref="ItemFields"/> and <see cref="BaseItemKind"/> for the domain.
  8. /// </summary>
  9. public interface IItemTypeLookup
  10. {
  11. /// <summary>
  12. /// Gets all values of the ItemFields type.
  13. /// </summary>
  14. public IReadOnlyList<ItemFields> AllItemFields { get; }
  15. /// <summary>
  16. /// Gets all BaseItemKinds that are considered Programs.
  17. /// </summary>
  18. public IReadOnlyList<BaseItemKind> ProgramTypes { get; }
  19. /// <summary>
  20. /// Gets all BaseItemKinds that should be excluded from parent lookup.
  21. /// </summary>
  22. public IReadOnlyList<BaseItemKind> ProgramExcludeParentTypes { get; }
  23. /// <summary>
  24. /// Gets all BaseItemKinds that are considered to be provided by services.
  25. /// </summary>
  26. public IReadOnlyList<BaseItemKind> ServiceTypes { get; }
  27. /// <summary>
  28. /// Gets all BaseItemKinds that have a StartDate.
  29. /// </summary>
  30. public IReadOnlyList<BaseItemKind> StartDateTypes { get; }
  31. /// <summary>
  32. /// Gets all BaseItemKinds that are considered Series.
  33. /// </summary>
  34. public IReadOnlyList<BaseItemKind> SeriesTypes { get; }
  35. /// <summary>
  36. /// Gets all BaseItemKinds that are not to be evaluated for Artists.
  37. /// </summary>
  38. public IReadOnlyList<BaseItemKind> ArtistExcludeParentTypes { get; }
  39. /// <summary>
  40. /// Gets all BaseItemKinds that are considered Artists.
  41. /// </summary>
  42. public IReadOnlyList<BaseItemKind> ArtistsTypes { get; }
  43. /// <summary>
  44. /// Gets mapping for all BaseItemKinds and their expected serialisaition target.
  45. /// </summary>
  46. public IDictionary<BaseItemKind, string?> BaseItemKindNames { get; }
  47. }