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;

    }

}
