using Microsoft.AspNetCore.Identity;
using Fengling.Platform.Domain.AggregatesModel.GatewayAggregate;
namespace Fengling.Platform.Infrastructure;
///
/// 路由存储接口
///
public interface IRouteStore
{
Task FindByIdAsync(string? id, CancellationToken cancellationToken = default);
Task FindByTenantCodeAsync(string tenantCode, CancellationToken cancellationToken = default);
Task FindByClusterIdAsync(string clusterId, CancellationToken cancellationToken = default);
Task> GetAllAsync(CancellationToken cancellationToken = default);
Task> GetPagedAsync(int page, int pageSize, string? tenantCode = null,
string? serviceName = null, RouteStatus? status = null, CancellationToken cancellationToken = default);
Task GetCountAsync(string? tenantCode = null, string? serviceName = null,
RouteStatus? status = null, CancellationToken cancellationToken = default);
Task CreateAsync(GwTenantRoute route, CancellationToken cancellationToken = default);
Task UpdateAsync(GwTenantRoute route, CancellationToken cancellationToken = default);
Task DeleteAsync(GwTenantRoute route, CancellationToken cancellationToken = default);
}