using audit_logs.Models.DTO; using audit.Model; namespace audit_logs.Services.Interfaces; using System.Security.Claims; using System.Threading.Tasks; using audit_logs.Models; using MongoDB.Bson; public interface IAuditService { Task RecordAuditAsync(AuditRecord auditRecord); Task CreateAuditLogAsync(ClaimsPrincipal? user, object dataOriginal, object dataModified, string reason = null); Task CreateAuditLogAsync(AuditLogData auditLogData); Task> GetAuditLogsBySpecificFilterAsync( SpecificAuditLogFilterDto filterDto); Task> GetAuditLogsMatchingTextOrDateAsync( AuditLogTextOrDateSearchDTO filtertTextOrDateDto); Task DeepCopyAsync(T source); Task JsonDeepCopyAsync(T source); }