package com.wzj.soopin.transaction.domain.bo.easypay.trade.query.resp;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/*
 * wx业务参数
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class WxQueryRespParamInfoVO {
    /**
     * 附加信息
     */
    private String attach;
    /**
     * 付款银行类型
     */
    private String cardIssuerCode;
    /**
     * 用户标识， 微信在易生appid下面openid
     */
    private String openId;
    /**
     * 子商户openId
     */
    private String subOpenId;
    /**
     * 优惠信息
     */
    private WxDiscountsInfoVO wxDiscountsInfo;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class WxDiscountsInfoVO {
        /**
         * 代金券金额
         */
        private Long couponAmount;
        /**
         * 优惠详细信息
         */
        private List<WxDiscountsDetailVO> discountsInfo;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class WxDiscountsDetailVO {
        /**
         * 活动ID
         */
        private String activityId;
        /**
         * 优惠券面额
         */
        private Long amount;
        /**
         * 优惠币种
         */
        private String currency;
        /**
         * 单品列表
         */
        private GoodsDetailRespVO goodsDetail;
        /**
         * 商户出资
         */
        private Long merchantContribute;
        /**
         * 优惠名称
         */
        private String name;
        /**
         * 其他出资方出资金额
         */
        private Long otherContribute;
        /**
         * 券ID
         */
        private String promotionId;
        /**
         * 优惠范围
         */
        private String scope;
        /**
         * 优惠类型
         */
        private String type;
        /**
         * 微信出资
         */
        private Long wxpayContribute;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class GoodsDetailRespVO {
        /**
         * 商品优惠金额 ，单位为：分
         */
        private Long discountAmount;
        /**
         * 商品编号
         */
        private String goodsId;
        /**
         * 商品名称
         */
        private String goodsName;
        /**
         * 商品备注
         */
        private String goodsRemark;
        /**
         * 商品单价 单位为分
         */
        private Long price;
        /**
         * 商品数量
         */
        private Long quantity;
    }
}
