package cn.novalon.gym.manage.member.config;

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

/**
 * 微信配置
 * 
 * @author 付嘉
 * @date 2026-05-01
 */

@Data
@Component
@ConfigurationProperties(prefix = "wechat")
public class WechatProperties {

    // 小程序配置
    private MiniApp miniapp = new MiniApp();

    // 服务号配置
    private Mp mp = new Mp();

    // 手机号加密配置
    private PhoneEncryption phoneEncryption = new PhoneEncryption();

    @Data
    public static class MiniApp {
        // 小程序 AppID
        private String appId;

        // 小程序 AppSecret
        private String appSecret;
    }

    @Data
    public static class Mp {
        // 服务号 AppID
        private String appId;

        // 服务号 AppSecret
        private String appSecret;

        // Token 验证信息
        private String token;

        // EncodingAESKey
        private String aesKey;

        // 回调地址（微信服务号事件推送 URL）
        private String callbackUrl;
    }

    @Data
    public static class PhoneEncryption {
        // 手机号加密密钥
        private String secretKey;

        // 初始化向量 IV
        private String iv;
    }
}
