using audit.Model;
using MongoDB.Bson;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MongoDB.Driver;

namespace audit_logs.Repositories.Interfaces;

public interface IAuditRecordRepository : IMongoRepository<AuditRecord>
{
    new Task InsertOneAsync(AuditRecord auditRecord);
    Task DeleteBeforeDate(DateTime date);
    Task<long> InsertBatch(IEnumerable<AuditRecord> auditRecords);
    Task<List<AuditRecord>> FindAllFromOrigin(ObjectId originId);
    Task<List<AuditRecord>> GetAllAuditRecordsAsync();
    Task<List<AuditRecord>> GetPaginatedAsync(int pageNumber, int pageSize);
    Task<long> CountDocumentsAsync(); // Nuevo método para contar documentos
}