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