using AMREZ.EOP.Domain.Entities.Tenancy; namespace AMREZ.EOP.Abstractions.Infrastructures.Repositories; public interface ITenantRepository { Task TenantExistsAsync(string tenantKey, CancellationToken ct = default); Task GetAsync(string tenantKey, CancellationToken ct = default); Task> ListTenantsAsync(CancellationToken ct = default); Task CreateAsync(TenantConfig row, CancellationToken ct = default); Task UpdateAsync(TenantConfig row, DateTimeOffset? ifUnmodifiedSince, CancellationToken ct = default); Task DeleteAsync(string tenantKey, CancellationToken ct = default); Task MapDomainAsync(string domain, string tenantKey, CancellationToken ct = default); Task UnmapDomainAsync(string domain, CancellationToken ct = default); Task> ListDomainsAsync(string? tenantKey, CancellationToken ct = default); Task AddBaseDomainAsync(string baseDomain, CancellationToken ct = default); Task RemoveBaseDomainAsync(string baseDomain, CancellationToken ct = default); Task GetTenantKeyByTenantIdAsync(Guid tenantId, CancellationToken ct = default); Task> MapTenantKeysAsync(IEnumerable tenantIds, CancellationToken ct = default); }