#nullable disable using System; using System.Collections.Generic; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Querying; namespace MediaBrowser.Controller.Persistence; /// /// Provides methods for accessing Peoples. /// public interface IPeopleRepository { /// /// Gets the people. /// /// The query. /// The list of people matching the filter. QueryResult GetPeople(InternalPeopleQuery filter); /// /// Updates the people. /// /// The item identifier. /// The people. void UpdatePeople(Guid itemId, IReadOnlyList people); /// /// Gets the people names. /// /// The query. /// The list of people names matching the filter. IReadOnlyList GetPeopleNames(InternalPeopleQuery filter); /// /// Gets the distinct people names per item for multiple items efficiently by querying from the mapping table. /// /// The item IDs to get people for. /// The person types to include (e.g. "Actor", "Director"). /// A dictionary mapping each item ID to its distinct people names, ordered by cast list order. Items with no matching people are omitted. IReadOnlyDictionary> GetPeopleNamesByItems(IReadOnlyList itemIds, IReadOnlyList personTypes); }