package cclotus.weixin.gateway;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Data
@ConfigurationProperties(prefix="wxapi.gateway")
public class WeixinConfigure {

	/**
	 * 是否启用微信API网关接口服务（用于集成发布场景，区分进程内调用还是进程外调用；单独发布时配置文件请显式设为true）
	 */
	private boolean enabled = false;

	/**
	 * 是否使用Redis，默认为 false（使用内存缓存）
	 */
    private boolean useRedis = false;

	/**
	 * 公众号/小程序 secret 列表
	 * appid: secret
	 */
    private Map<String,String> secret;

	/**
	 * 微信授权baseUrl
	 */
    private String authBaseUrl;

	/**
	 * state失效时间（秒）
	 */
	private int stateTimeout = 600;

	/**
	 * code失效时间（秒）
	 */
	private int codeTimeout = 600;

	/**
	 * 非access_token接口列表，请求时直接将secret参数附加到uri
	 */
	private List<String> noTokenApi = new ArrayList<String>() {{
		add("/sns/oauth2/access_token"); // oauth2认证，获得用户openid
		add("/sns/jscode2session"); // 小程序登录凭证校验，通过code换取openid
	}};

}
