using Persistence.Models; using Persistence.Models.Requests; namespace Persistence.Repositories; /// /// Интерфейс для работы с историческими данными /// /// public interface IChangeLogRepository : ISyncWithDiscriminatorRepository { /// /// Добавление записей /// /// пользователь, который добавляет /// ключ справочника /// /// /// Task AddRange(Guid idAuthor, int idDiscriminator, IEnumerable dtos, CancellationToken token); /// /// Пометить записи как удаленные /// /// /// ключи записей /// /// Task MarkAsDeleted(Guid idEditor, IEnumerable ids, CancellationToken token); /// /// Пометить записи как удаленные /// /// /// дискриминатор таблицы /// /// Task MarkAsDeleted(Guid idEditor, int idDiscriminator, CancellationToken token); /// /// Очистить и добавить новые /// /// /// /// /// /// Task ClearAndAddRange(Guid idAuthor, int idDiscriminator, IEnumerable dtos, CancellationToken token); /// /// Редактирование записей /// /// пользователь, который редактирует /// /// /// Task UpdateRange(Guid idEditor, IEnumerable dtos, CancellationToken token); /// /// Получение актуальных записей на определенный момент времени (с пагинацией) /// /// /// текущий момент времени /// параметры запроса фильтрации /// параметры запроса пагинации /// /// Task> GetByDate(int idDiscriminator, DateTimeOffset moment, SectionPartRequest filterRequest, PaginationRequest paginationRequest, CancellationToken token); /// /// Получение измененных записей за период времени /// /// /// /// /// /// Task> GetChangeLogForInterval(int idDiscriminator, DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token); /// /// Получение списка дат, в которые происходили изменения (день, месяц, год, без времени) /// /// /// /// Task> GetDatesChange(int idDiscriminator, CancellationToken token); }