package net.northking.cctp.se.config;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 服务端相关配置
 */
@Data
@ConfigurationProperties(prefix = "atu.server")
@Configuration
public class AtuServerConfig {
    /**
     * 服务端服务器地址
     */
    private String serverUrl;
    /**
     * 设备管理路径
     */
    private String deviceInfoPath;
    /**
     * 全局变量访问
     */
    private String globalVarPath;
    /**
     * 全局变量修改路径
     */
    private String globalVarUpdatePath;
    /**
     * 文件下载路径
     */
    private String fileDownloadPath;
    /**
     * 文件上传路径
     */
    private String fileUploadPath;
    /**
     * 组件库工作基础目录
     */
    private String componentBasePath;

    /**
     * 设备管理注册
     */
    private String engineRegister;

    /**
     * 引擎服务名称
     */
    private String engineName;

    /**
     * 引擎版本号
     */
    private String engineVersion;

    /**
     * 设备释放接口路径
     */
    private String deviceReleasePath;

    /**
     * app下载
     */
    private String appDownloadUrl;
    /**
     * 组件库清单地址
     */
    private String libListUrl;

    private String appiumHost;

    private String appiumPort;

    private String appiumContextPath;

    private String appDownloadAddr;
    /**
     * 移动任务引擎批量占用设备接口
     */
    private String tryAcqurieDeviceUrl;

    /**
     * pc任务引擎占用设备接口
     */
    private String pcAcqurieDeviceUrl;

    /**
     * 任务取消更新结果接口
     */
    private String taskCancelResultUrl;

    /**
     * 移动应用详情接口
     */
    private String appInfoUrl;
    /**
     * 获取模糊数据信息接口
     */
    private String ruleDataByName;
    /**
     * 超时释放设备接口
     */
    private String releaseDeviceBatch;

    /**
     * 获取项目信息
     */
    private String projectInfo;

    /**
     * 获取引用数据
     */
    private String quoteDataUrl;
	
	public String getQuoteDataUrl() {
        return StringUtils.isBlank(quoteDataUrl) ? "/api/atu-data-mgr/pub/query/selectDataUrlAndTreeName" : this.quoteDataUrl;
    }

    /**
     * bs被测系统url查询地址
     */
    private String testSysUrl;
/**
     * 根据token获取用户信息
     */
    private String userInfoUrl;

    public String getUserInfoUrl() {
        return StringUtils.isBlank(this.userInfoUrl) ? "/api/cctp-platform/security/token/user-info" : this.userInfoUrl;
    }

    private String engineSys;

    private String remotePort;

    private String remoteProtocol;

    private Boolean IsPcExecutor;
}
