package com.yuchen.saas.payment.api.dto.order;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author zhouhanwei
 * @create 2023/6/19 17:16
 */
@Data
public class ApplyStoppingOrderRefundReqDTO {

    /**
     * openId
     */
//    @NotBlank(message = "微信openId不能为空")
    private String openId;
    @ApiModelProperty(name = "applyMode", value = "申请方式(1:系统创建，2：用户提交,3:管理员提交)")
    @NotNull(message = "申请方式不能为空")
    private Integer applyMode;
    /**
     * 订单id
     */
    @NotNull(message = "订单id不能为空")
    private Long orderId;

    /**
     * 退款金额
     */
    @NotNull(message = "退款总金额不能为空")
    private Long refundCost;
    @ApiModelProperty(name = "refundCostDetail", value = "退款金额明细（多费用项）")
    @NotNull(message = "退款金额明细不能为空")
    private List<RefundCostDetail> refundCostDetail;

    @Data
    public static class RefundCostDetail {
        @ApiModelProperty(name = "itemNo", value = "费用编号")
        private String itemNo;

        @ApiModelProperty(name = "itemRefundCost", value = "退款费用项目金额 单位 分")
        private Long itemRefundCost;
    }
    /**
     * 图片描述
     */
    private List<String> imageDescList;

    /**
     * 退款理由
     */
    @ApiModelProperty(name = "refundReason", value = "退款理由")
    private String refundReason;

    /**
     * 退款描述
     */
    @ApiModelProperty(name = "refundDesc", value = "退款描述")
    private String refundDesc;

    @ApiModelProperty(name = "applyType", value = "申请类型(1:退款申请 2:售后申诉)")
    private Integer applyType;

    @ApiModelProperty(name = "appealId", value = "申诉ID")
    private Long appealId;


}
