#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 people names per item for a batch of item IDs, preserving per-item list order. /// One database round-trip for the whole batch; grouped by item id in memory. /// Items with no people are omitted from the returned dictionary. /// /// The item IDs to get people for. /// Optional person types to include (e.g. "Actor", "Director"). Empty for all. /// Dictionary keyed by item id; values are the per-item people names. IReadOnlyDictionary> GetPeopleNamesByItem(IReadOnlyList itemIds, IReadOnlyList personTypes); }