using DD.Persistence.Models.ChangeLog; using DD.Persistence.Models.Common; using DD.Persistence.Models.Requests; namespace DD.Persistence.Repositories; /// /// Интерфейс для работы с историческими данными /// public interface IChangeLogRepository { /// /// Добавление записей /// /// коммит с изменениями /// /// /// Task AddRange(ChangeLogCommitDto dto, IEnumerable> dtos, CancellationToken token); /// /// Пометить записи как удаленные /// /// ключи записей /// /// /// Task MarkAsDeleted(IEnumerable ids, ChangeLogCommitDto commit, CancellationToken token); /// /// Пометить записи как удаленные /// /// /// /// Task MarkAsDeletedByDiscriminator(ChangeLogCommitDto commit, CancellationToken token); /// /// Очистить и добавить новые /// /// коммит с изменениями /// /// /// Task ClearAndAddRange(ChangeLogCommitDto dto, IEnumerable> dtos, CancellationToken token); /// /// Редактирование записей /// /// коммит с изменениями /// /// /// Task UpdateRange(ChangeLogCommitDto commitDto, IEnumerable dtos, CancellationToken token); /// /// Получение актуальных записей на определенный момент времени (с пагинацией) /// /// /// текущий момент времени /// параметры запроса пагинации /// /// Task> GetByDate(Guid idDiscriminator, DateTimeOffset moment, PaginationRequest paginationRequest, CancellationToken token); /// /// Получение журнала изменений по пользователю и дискриминатору задачи /// /// /// /// Task> GetByUserIdAndDiscriminatorId(ChangeLogQuery request, CancellationToken token); /// /// получить изменения для синхронизации /// /// /// /// /// Task> GetGtDate(Guid idDiscriminator, DateTimeOffset dateBegin, CancellationToken token); }