using DigitalData.EmailProfiler.Domain.Entities;
namespace DigitalData.EmailProfiler.Application.Interfaces.Repositories;
///
/// Repository interface for EmailProfile entity.
///
public interface IEmailProfileRepository : IRepository
{
///
/// Get all active profiles.
///
Task> GetActiveProfilesAsync(CancellationToken cancellationToken = default);
///
/// Get profiles that should be polled now (based on PollIntervalMinutes).
///
Task> GetProfilesDueForPollingAsync(CancellationToken cancellationToken = default);
///
/// Get profile with all related entities (EmailAccount, EmailProcess, ProcessSteps).
///
Task GetWithRelatedEntitiesAsync(int id, CancellationToken cancellationToken = default);
///
/// Get profiles by email account ID.
///
Task> GetByEmailAccountIdAsync(int emailAccountId, CancellationToken cancellationToken = default);
}