package com.ruoyi.jarvis.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * 腾讯文档开放平台配置
 * 
 * @author system
 */
@Configuration
@Component
@ConfigurationProperties(prefix = "tencent.doc")
public class TencentDocConfig {
    
    private static final Logger log = LoggerFactory.getLogger(TencentDocConfig.class);
    
    /** 应用ID */
    private String appId;
    
    /** 应用密钥 */
    private String appSecret;
    
    /** 授权回调地址 */
    private String redirectUri;
    
    /** API基础地址 - V3版本（注意：根据文档路径推测应该是 /open/api/v3） */
    private String apiBaseUrl = "https://docs.qq.com/open/api/v3";
    
    /** OAuth授权地址 */
    private String oauthUrl = "https://docs.qq.com/oauth/v2/authorize";
    
    /** 获取Token地址 */
    private String tokenUrl = "https://docs.qq.com/oauth/v2/token";
    
    /** 刷新Token地址 */
    private String refreshTokenUrl = "https://docs.qq.com/oauth/v2/token";
    
    /**
     * 配置初始化后验证
     */
    @PostConstruct
    public void init() {
        log.info("腾讯文档配置加载 - appId: {}, redirectUri: {}, apiBaseUrl: {}", 
            appId != null && appId.length() > 10 ? appId.substring(0, 10) + "..." : (appId != null ? appId : "null"),
            redirectUri != null ? redirectUri : "null",
            apiBaseUrl);
        
        if (appId == null || appId.trim().isEmpty()) {
            log.warn("腾讯文档应用ID未配置！请检查application-dev.yml中的tencent.doc.app-id");
        }
        if (appSecret == null || appSecret.trim().isEmpty()) {
            log.warn("腾讯文档应用密钥未配置！请检查application-dev.yml中的tencent.doc.app-secret");
        }
        if (redirectUri == null || redirectUri.trim().isEmpty()) {
            log.warn("腾讯文档回调地址未配置！请检查application-dev.yml中的tencent.doc.redirect-uri");
        }
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getAppSecret() {
        return appSecret;
    }

    public void setAppSecret(String appSecret) {
        this.appSecret = appSecret;
    }

    public String getRedirectUri() {
        return redirectUri;
    }

    public void setRedirectUri(String redirectUri) {
        this.redirectUri = redirectUri;
    }

    public String getApiBaseUrl() {
        return apiBaseUrl;
    }

    public void setApiBaseUrl(String apiBaseUrl) {
        this.apiBaseUrl = apiBaseUrl;
    }

    public String getOauthUrl() {
        return oauthUrl;
    }

    public void setOauthUrl(String oauthUrl) {
        this.oauthUrl = oauthUrl;
    }

    public String getTokenUrl() {
        return tokenUrl;
    }

    public void setTokenUrl(String tokenUrl) {
        this.tokenUrl = tokenUrl;
    }

    public String getRefreshTokenUrl() {
        return refreshTokenUrl;
    }

    public void setRefreshTokenUrl(String refreshTokenUrl) {
        this.refreshTokenUrl = refreshTokenUrl;
    }
}

