mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-02 13:58:29 +01:00
44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
#nullable disable
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using MediaBrowser.Controller.Entities;
|
|
using MediaBrowser.Model.Querying;
|
|
|
|
namespace MediaBrowser.Controller.Persistence;
|
|
|
|
/// <summary>
|
|
/// Provides methods for accessing Peoples.
|
|
/// </summary>
|
|
public interface IPeopleRepository
|
|
{
|
|
/// <summary>
|
|
/// Gets the people.
|
|
/// </summary>
|
|
/// <param name="filter">The query.</param>
|
|
/// <returns>The list of people matching the filter.</returns>
|
|
QueryResult<PersonInfo> GetPeople(InternalPeopleQuery filter);
|
|
|
|
/// <summary>
|
|
/// Updates the people.
|
|
/// </summary>
|
|
/// <param name="itemId">The item identifier.</param>
|
|
/// <param name="people">The people.</param>
|
|
void UpdatePeople(Guid itemId, IReadOnlyList<PersonInfo> people);
|
|
|
|
/// <summary>
|
|
/// Gets the people names.
|
|
/// </summary>
|
|
/// <param name="filter">The query.</param>
|
|
/// <returns>The list of people names matching the filter.</returns>
|
|
IReadOnlyList<string> GetPeopleNames(InternalPeopleQuery filter);
|
|
|
|
/// <summary>
|
|
/// Gets the distinct people names per item for multiple items efficiently by querying from the mapping table.
|
|
/// </summary>
|
|
/// <param name="itemIds">The item IDs to get people for.</param>
|
|
/// <param name="personTypes">The person types to include (e.g. "Actor", "Director").</param>
|
|
/// <returns>A dictionary mapping each item ID to its distinct people names, ordered by cast list order. Items with no matching people are omitted.</returns>
|
|
IReadOnlyDictionary<Guid, IReadOnlyList<string>> GetPeopleNamesByItems(IReadOnlyList<Guid> itemIds, IReadOnlyList<string> personTypes);
|
|
}
|