package cn.novalon.gym.manage.gateway.service;

import org.springframework.cloud.gateway.route.RouteDefinition;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.List;

/**
 * 动态路由服务接口
 * 
 * 文件定义：定义网关路由的动态配置和管理接口
 * 涉及业务：路由增删改查、路由刷新、路由缓存管理
 * 
 * 核心功能：
 * 1. 动态添加路由
 * 2. 动态删除路由
 * 3. 动态更新路由
 * 4. 路由列表查询
 * 5. 路由刷新
 * 
 * @author 张翔
 * @date 2026-04-14
 */
public interface IDynamicRouteService {
    
    Mono<Boolean> addRoute(RouteDefinition routeDefinition);
    
    Mono<Boolean> updateRoute(RouteDefinition routeDefinition);
    
    Mono<Boolean> deleteRoute(String routeId);
    
    Flux<RouteDefinition> getRoutes();
    
    Mono<RouteDefinition> getRoute(String routeId);
    
    Mono<Void> refreshRoutes();
    
    Mono<Long> getRouteCount();
    
    Mono<Boolean> routeExists(String routeId);
    
    Mono<Void> clearRouteCache();
}