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 ISsoManager
{
    Task<IPaginatedData<ReadSsoProvider>> GetSsoProvidersAsync(Paging paging, CancellationToken cancellationToken);
    Task<ReadSsoProvider> GetSsoProviderAsync(IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
    Task AddSsoProviderAsync(AuditUserDetails auditUserDetails, CreateSsoProvider ssoProvider, CancellationToken cancellationToken);
    Task EditSsoProviderAsync(AuditUserDetails auditUserDetails, EditSsoProvider ssoProvider, CancellationToken cancellationToken);
    Task RemoveSsoProviderAsync( AuditUserDetails auditUserDetails, IGeneralIdRef generalIdRef, CancellationToken cancellationToken);
    Task PatchSsoProviderAsync(AuditUserDetails auditUserDetails, GeneralIdRef generalIdRef, PatchSsoProvider patchSsoProvider, CancellationToken cancellationToken);
}