using System.Collections.Generic; using JetBrains.Annotations; using Unity.Cloud.Collaborate.Models.Structures; namespace Unity.Cloud.Collaborate.Presenters { internal interface IHistoryPresenter : IPresenter { /// <summary> /// Request a move to the previous page. Ensures page number never goes below 0. /// </summary> void PrevPage(); /// <summary> /// Request a move to the next page. Ensures page number doesn't go beyond the max number of pages. /// </summary> void NextPage(); /// <summary> /// Set the revision id to request. /// </summary> [NotNull] string SelectedRevisionId { set; } /// <summary> /// Request to update the state of the project to a provided revision. If revision is in the past, then the /// state of the project at that point simply will be applied on top of the current without impacting history. /// </summary> /// <param name="revisionId">Revision id of the project to update to.</param> /// <param name="status">Status of the revision.</param> void RequestGoto([NotNull] string revisionId, HistoryEntryStatus status); /// <summary> /// Returns true if revert is supported. /// </summary> bool SupportsRevert { get; } /// <summary> /// Request to revert the specified files to the given revision. /// </summary> /// <param name="revisionId">Revision to revert the files back to.</param> /// <param name="files">Files to revert back.</param> void RequestRevert([NotNull] string revisionId, [NotNull] IReadOnlyList<string> files); } }