using DD.Persistence.Models; using DD.Persistence.Models.Common; using DD.Persistence.Models.Requests; using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal; namespace DD.Persistence.Repositories; /// /// Интерфейс для работы с историческими данными /// public interface IChangeLogRepository : ISyncWithDiscriminatorRepository { /// /// Добавление записей /// /// ключ справочника /// коммит с изменениями /// /// /// Task AddRange(Guid idDiscriminator, ChangeLogCommitDto dto, IEnumerable dtos, CancellationToken token); /// /// Пометить записи как удаленные /// /// /// ключи записей /// /// /// Task MarkAsDeleted(Guid idCommit, IEnumerable ids, DateTimeOffset updateTime, CancellationToken token); /// /// Пометить записи как удаленные /// /// дискриминатор таблицы /// /// /// /// Task MarkAsDeleted(Guid idDiscriminator, Guid idCommit, DateTimeOffset updateTime, CancellationToken token); /// /// Очистить и добавить новые /// /// /// коммит с изменениями /// /// /// Task ClearAndAddRange(Guid idDiscriminator, 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> GetChangeLogForInterval(Guid idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token); /// /// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени) /// /// /// /// Task> GetDatesChange(Guid idDiscriminator, CancellationToken token); }