package com.zhentao.filter;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 网关路由配置
 */
@Configuration
public class GatewayRoutes {

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        System.out.println("=== 网关路由配置加载 ===");
        return builder.routes()
                // 用户服务路由
                .route("user_route", r -> r.path("/user/**")
                        .uri("http://localhost:8081"))
                // 动态服务与媒体路由改由 application.yml 管理，避免与此处重复

                // 首页服务路由 - 红娘相关接口（端口8081）
                .route("homepage_matchmaker_route", r -> r.path("/api/matchmaker/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 其他首页接口（端口8081）
                .route("homepage_route", r -> r.path("/api/home/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 成功案例接口（端口8081）
                .route("homepage_case_route", r -> r.path("/api/success-case/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 活动接口（端口8081）
                .route("homepage_activity_route", r -> r.path("/api/activity/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 课程接口（端口8081）
                .route("homepage_course_route", r -> r.path("/api/course/**")
                        .uri("http://localhost:8081"))
                .route("homepage_course_route", r -> r.path("/api/chatfriend/**")
                        .uri("http://localhost:1004"))
                
                // 登录服务路由（验证码、微信登录等）
                .route("login_route", r -> r.path("/api/login/**")
                        .uri("http://localhost:8087"))

                // Essential服务路由 - 头像静态资源
                .route("avatar_static_route", r -> r.path("/avatars/**")
                        .uri("http://localhost:1005"))

                // Essential服务路由 - API接口（签到、用户、VIP、头像、黑名单、活动报名）
                .route("essential_route", r -> r.path("/api/checkin/**", "/api/user/**", "/api/vip/**", "/api/avatar/**", "/api/blacklist/**", "/api/activity-registration/**")
                        .uri("http://localhost:1005"))
                // 消息服务路由由 application.yml 管理（包括系统消息与CORS处理）
                //推荐用户（改为8089端口，避免与网关和登录服务冲突）
                .route("recommend_route", r -> r.path("/api/recommend/**")
                        .uri("http://localhost:8089"))
                
                // 管理端服务路由
                .route("admin_route", r -> r.path("/admin/**")
                        .uri("http://localhost:8088"))
                .build();
    }

}
