package com.jeesharp.business.wechat.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * 微信相关配置：小程序与支付（V2）参数，与 {@code wx.miniapp}、{@code wx.pay.jsapi} 对齐；
 * 公众号见 {@link WechatMpProperties}。
 *
 * @author jeesharp
 * @since 2026-05-12
 */
@Data
@Configuration
public class WeChatConfig {

    // ==================== 小程序 ====================

    @Value("${wx.miniapp.appId:}")
    private String miniappAppId;

    @Value("${wx.miniapp.secret:}")
    private String miniappSecret;

    // ==================== 公众号 ====================

    @Value("${wx.mp.appId:}")
    private String mpAppId;

    @Value("${wx.mp.secret:}")
    private String mpSecret;

    // ==================== 微信支付 V2（与 wx.pay.jsapi 下同节点字段对齐） ====================

    @Value("${wx.pay.jsapi.appId:}")
    private String payAppId;

    @Value("${wx.pay.jsapi.mchId:}")
    private String mchId;

    @Value("${wx.pay.jsapi.mchKey:}")
    private String mchKey;

    /**
     * 小程序/公众号应用密钥（V2 等场景）；可与 {@code wx.miniapp.secret} 配置为同一引用。
     */
    @Value("${wx.pay.jsapi.appSecret:}")
    private String appSecret;

    @Value("${wx.pay.jsapi.apiKey:}")
    private String apiKey;

    @Value("${wx.pay.jsapi.signType:MD5}")
    private String signType;

    @Value("${wx.pay.jsapi.certPath:}")
    private String certPath;

    @Value("${wx.pay.jsapi.certPrivateKeyPath:}")
    private String certPrivateKeyPath;

    @Value("${wx.pay.jsapi.certPrivateCertPath:}")
    private String certPrivateCertPath;

    @Value("${wx.pay.jsapi.notifyUrl:}")
    private String notifyUrl;
}
