#nullable disable #pragma warning disable CA1002, CA1707, CS1591 using System; using System.Collections.Generic; using System.Threading; using Jellyfin.Data.Entities; using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Library { /// /// Interface IUserDataManager. /// public interface IUserDataManager { /// /// Occurs when [user data saved]. /// event EventHandler UserDataSaved; /// /// Saves the user data. /// /// The user id. /// The item. /// The user data. /// The reason. /// The cancellation token. void SaveUserData(Guid userId, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken); void SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken); /// /// Save the provided user data for the given user. /// /// The user. /// The item. /// The reason for updating the user data. /// The reason. void SaveUserData(User user, BaseItem item, UpdateUserItemDataDto userDataDto, UserDataSaveReason reason); UserItemData GetUserData(User user, BaseItem item); UserItemData GetUserData(Guid userId, BaseItem item); /// /// Gets the user data dto. /// /// Item to use. /// User to use. /// User data dto. UserItemDataDto GetUserDataDto(BaseItem item, User user); UserItemDataDto GetUserDataDto(BaseItem item, BaseItemDto itemDto, User user, DtoOptions options); /// /// Get all user data for the given user. /// /// The user id. /// The user item data. List GetAllUserData(Guid userId); /// /// Save the all provided user data for the given user. /// /// The user id. /// The array of user data. /// The cancellation token. void SaveAllUserData(Guid userId, UserItemData[] userData, CancellationToken cancellationToken); /// /// Updates playstate for an item and returns true or false indicating if it was played to completion. /// /// Item to update. /// Data to update. /// New playstate. /// True if playstate was updated. bool UpdatePlayState(BaseItem item, UserItemData data, long? reportedPositionTicks); } }