package com.xindazhou.framework.apilog.config;

import com.xindazhou.framework.common.biz.infra.logger.ApiAccessLogCommonApi;
import com.xindazhou.framework.common.biz.infra.logger.ApiErrorLogCommonApi;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * API 日志 Feign 客户端配置项
 * 
 * 提供 Feign 客户端，让服务可以通过 RPC 调用日志接口
 * 如果服务有本地实现（如 business-server），会优先使用本地实现
 *
 * @author xdz
 */
@AutoConfiguration
@ConditionalOnMissingBean(name = {"apiAccessLogApiImpl", "apiErrorLogApiImpl"})
@EnableFeignClients(clients = {ApiAccessLogCommonApi.class, ApiErrorLogCommonApi.class})
public class XdzApiLogRpcAutoConfiguration {
    
    // 注意：
    // 1. business-server 有本地实现（ApiAccessLogApiImpl、ApiErrorLogApiImpl），会排除此配置
    // 2. 其他服务（platform-server、user-server 等）会使用 Feign 客户端调用 business-server
    // 3. 这不是循环依赖！服务间调用是正常的：
    //    - business-server → user-server：业务调用（获取用户信息）
    //    - user-server → business-server：日志调用（记录日志）
}

