namespace Fengling.Platform.Infrastructure; using Fengling.Platform.Domain.AggregatesModel.TenantAggregate; public interface ITenantStore { Task FindByIdAsync(long tenantId, CancellationToken cancellationToken = default); Task FindByTenantCodeAsync(string tenantCode, CancellationToken cancellationToken = default); Task> GetAllAsync(CancellationToken cancellationToken = default); Task> GetPagedAsync(int page, int pageSize, string? name = null, string? tenantCode = null, TenantStatus? status = null, CancellationToken cancellationToken = default); Task GetCountAsync(string? name = null, string? tenantCode = null, TenantStatus? status = null, CancellationToken cancellationToken = default); Task GetUserCountAsync(long tenantId, CancellationToken cancellationToken = default); Task CreateAsync(Tenant tenant, CancellationToken cancellationToken = default); Task UpdateAsync(Tenant tenant, CancellationToken cancellationToken = default); Task DeleteAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetTenantCodeAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetNameAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetContactNameAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetContactEmailAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetContactPhoneAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetMaxUsersAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetDescriptionAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetStatusAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetExpiresAtAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetCreatedAtAsync(Tenant tenant, CancellationToken cancellationToken = default); Task GetUpdatedAtAsync(Tenant tenant, CancellationToken cancellationToken = default); Task SetTenantCodeAsync(Tenant tenant, string code, CancellationToken cancellationToken = default); Task SetNameAsync(Tenant tenant, string name, CancellationToken cancellationToken = default); Task SetContactNameAsync(Tenant tenant, string name, CancellationToken cancellationToken = default); Task SetContactEmailAsync(Tenant tenant, string email, CancellationToken cancellationToken = default); Task SetContactPhoneAsync(Tenant tenant, string? phone, CancellationToken cancellationToken = default); Task SetMaxUsersAsync(Tenant tenant, int? maxUsers, CancellationToken cancellationToken = default); Task SetDescriptionAsync(Tenant tenant, string? description, CancellationToken cancellationToken = default); Task SetStatusAsync(Tenant tenant, TenantStatus status, CancellationToken cancellationToken = default); Task SetExpiresAtAsync(Tenant tenant, DateTime? expiresAt, CancellationToken cancellationToken = default); }