using e_suite.API.Common.models;
using e_suite.Database.Audit;
using e_suite.Utilities.Pagination;
using eSuite.Core.Miscellaneous;

namespace e_suite.API.Common;

public interface IDomainManager
{
    public Task<IPaginatedData<GetDomain>> GetDomainsAsync(Paging paging, CancellationToken cancellationToken);
    public Task<GetDomain> GetDomainAsync(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
    
    public Task CreateDomainAsync(AuditUserDetails auditUserDetails, CreateDomain createDomain, CancellationToken cancellationToken);

    public Task EditDomainAsync(AuditUserDetails auditUserDetails, EditDomain editDomain, CancellationToken cancellationToken);

    public Task DeleteDomainAsync(AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
}