package com.liquidnet.common.third.sqb.param.request;

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

import java.util.List;

/**
 * 券退款请求参数
 */

@Data
public class CouponRefundRequest {

    /**
     * 应用ID（收钱吧分配的应用id）
     */
    private String appid;

    /**
     * 卖家信息
     */
    private CommonRequest.Seller seller;

    /**
     * 订单信息
     */
    private CommonRequest.OrderInfo orderID;

    /**
     * 申请退款信息不能为空
     */
    private RefundInfo refundInfo;

    /**
     * 退款请求id（${AppCode}+id）
     */
    private String requestId;

    /**
     * 退款来源（固定值：EXTERN）
     */
    private String requestSource;


    /**
     * 退款信息
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class RefundInfo {
        /**
         * 金额
         */
        private Long applyAmount;

        /**
         * 退款类型（1商品 2金额）
         */
        private Byte type;

        /**
         * 退款明细（商品必填）
         */
        private List<RefundItem> items;

        /**
         * 退款原因
         */
        private String refundReason;

    }

    /**
     * 退款明细商品
     */
    @Data
    public static class RefundItem {
        /**
         * spu
         */
        private String spuId;

        /**
         * sku
         */
        private String skuId;

        /**
         * 标题
         */
        private String title;

        /**
         * 商品图片
         */
        private String img;

        /**
         * 数量
         */
        private String quantity;

        /**
         * 退款类型（0正常商品 1自定义商品）
         */
        private Byte type;

    }

}
