package cn.iocoder.hake.module.pay.framework.pay.config;

import cn.iocoder.hake.module.pay.framework.pay.core.client.PayClientConfig;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;

import javax.validation.Validator;

/**
 * 汇付支付的 PayClientConfig 实现类
 * 属性主要来自 {@link com.huifu.bspay.sdk.opps.core.config.MerConfig} 的必要属性
 *
 * @author duanyuqing
 */
@Data
public class HuifuClientConfig implements PayClientConfig {

    @Value("${profiles.active}")
    private String active;

    /**
     * debug 模式，开启后有详细的日志
     */
    private boolean debug;

    /**
     * prodMode 模式，默认为生产模式
     * MODE_PROD = "prod"; // 生产环境
     * MODE_TEST = "test"; // 线上联调环境(针对商户联调测试)
     */
    private String prodMode;

    //产品编号
    @Value("${hake.huifu.procutId}")
    private String procutId;

    //系统编号
    @Value("${hake.huifu.sysId}")
    private String sysId;

    //私钥
    @Value("${hake.huifu.rsaPrivateKey}")
    private String rsaPrivateKey;

    //公钥
    @Value("${hake.huifu.rsaPublicKey}")
    private String rsaPublicKey;

    //自定义超时时间
    @Value("${hake.huifu.customConnectTimeout}")
    private String customSocketTimeout;

    @Value("${hake.huifu.customConnectTimeout}")
    private String customConnectTimeout;

    @Value("${hake.huifu.customConnectionRequestTimeout}")
    private String customConnectionRequestTimeout;


    @Override

    public void validate(Validator validator) {
        //读取环境配置，调用汇付接口
        prodMode = active.equals("prod") ? "MODE_PROD" : "MODE_TEST";
        debug = active.equals("prod") ? false : true;
    }

}
