package com.zm.order.tool.server.dto;

import com.alibaba.fastjson.JSON;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Description 退款单DTO
 * @Author: ph
 * @Date: 2019/11/7 17:55
 */
public class RefundDTO {

    /**
     * 主键
     */
    private Long id;

    /**
     * 业务类型
     */
    private Integer bizType;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 退款单号
     */
    private String refundNo;

    /**
     * 订单退款方式
     */
    private Integer refundWay;

    /**
     * 退款单级别
     */
    private Integer refundLevel;

    /**
     * 商家id
     */
    private Long sellerId;

    /**
     * 门店id
     */
    private Long storeId;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 来源
     */
    private Integer source;

    /**
     * 来源单号
     */
    private String sourceNo;

    /**
     * 退款类型
     */
    private Integer refundType;

    /**
     * 退款金额
     */
    private Integer refundAmount;

    /**
     * 退的三方的钱
     */
    private Integer amount;

    /**
     * 退余额的钱
     */
    private Integer walletAmount;


    /**
     * 退款金额详细信息
     */
    private String refundAmountDetails;

    /**
     * 申请人
     */
    private Long applicant;

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

    /**
     * 图片
     */
    private String images;

    /**
     * 申请时间
     */
    private Date applyAt;

    /**
     * 退款状态
     */
    private Integer status;

    /**
     * 退款单金额详情
     */
    private Map<String, Object> refundAmountDetailsMap;

    /**
     * 扩展信息 map
     */
    private Map<String, Object> extraMap;

    /**
     * 订单类型
     */
    private Integer orderType;

    /**
     * 支付状态
     */
    private Integer payStatus;

    /**
     * 订单状态
     */
    private Integer orderStatus;

    /**
     * 退款状态
     */
    private Integer afterSaleStatus;

    /**
     * 接单状态
     */
    private Integer receiveStatus;

    /**
     * 履约状态
     */
    private Integer performanceStatus;

    /**
     * 履约类型
     */
    private Integer performanceType;

    /**
     * 订单总金额
     */
    private Integer totalAmount;

    /**
     * 运费总金额
     */
    private Integer freightAmount;

    /**
     * packCost
     */
    private Integer packAmount;

    /**
     * 是否独立收款
     */
    private Integer isAlone;

    /**
     * 优惠总金额
     */
    private Integer discountAmount;

    /**
     * 实付金额
     */
    private Integer actualAmount;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 更新时间
     */
    private Date updatedAt;

    /**
     * 退款商品列表
     */
    private List<RefundItemDTO> refundItemList;

    /**
     * 处理时间
     */
    private Date dealAt;

    /**
     * 复查状态
     */
    private Integer reviewStatus;

    /**
     * 礼品卡退款金额
     */
    private Integer giftCardAmount;

    /**
     * 来源系统
     */
    private Integer fromSystem;

    /**
     * 订单子类型
     */
    private Integer orderSubType;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 退款明细列表
     */
    private List<RefundPayDetailDTO> refundDetailsList;

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public List<RefundPayDetailDTO> getRefundDetailsList() {
        return refundDetailsList;
    }

    public void setRefundDetailsList(List<RefundPayDetailDTO> refundDetailsList) {
        this.refundDetailsList = refundDetailsList;
    }

    public Integer getOrderSubType() {
        return orderSubType;
    }

    public void setOrderSubType(Integer orderSubType) {
        this.orderSubType = orderSubType;
    }

    public Integer getFromSystem() {
        return fromSystem;
    }

    public void setFromSystem(Integer fromSystem) {
        this.fromSystem = fromSystem;
    }

    public Integer getGiftCardAmount() {
        return giftCardAmount;
    }

    public void setGiftCardAmount(Integer giftCardAmount) {
        this.giftCardAmount = giftCardAmount;
    }

    public Integer getReviewStatus() {
        return reviewStatus;
    }

    public void setReviewStatus(Integer reviewStatus) {
        this.reviewStatus = reviewStatus;
    }

    public Date getDealAt() {
        return dealAt;
    }

    public void setDealAt(Date dealAt) {
        this.dealAt = dealAt;
    }

    public List<RefundItemDTO> getRefundItemList() {
        return refundItemList;
    }

    public void setRefundItemList(List<RefundItemDTO> refundItemList) {
        this.refundItemList = refundItemList;
    }

    public Integer getRefundWay() {
        return refundWay;
    }

    public void setRefundWay(Integer refundWay) {
        this.refundWay = refundWay;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public Integer getWalletAmount() {
        return walletAmount;
    }

    public void setWalletAmount(Integer walletAmount) {
        this.walletAmount = walletAmount;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getBizType() {
        return bizType;
    }

    public void setBizType(Integer bizType) {
        this.bizType = bizType;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getRefundNo() {
        return refundNo;
    }

    public void setRefundNo(String refundNo) {
        this.refundNo = refundNo;
    }

    public Integer getRefundLevel() {
        return refundLevel;
    }

    public void setRefundLevel(Integer refundLevel) {
        this.refundLevel = refundLevel;
    }

    public Long getSellerId() {
        return sellerId;
    }

    public void setSellerId(Long sellerId) {
        this.sellerId = sellerId;
    }

    public Long getStoreId() {
        return storeId;
    }

    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Integer getSource() {
        return source;
    }

    public void setSource(Integer source) {
        this.source = source;
    }

    public String getSourceNo() {
        return sourceNo;
    }

    public void setSourceNo(String sourceNo) {
        this.sourceNo = sourceNo;
    }

    public Integer getRefundType() {
        return refundType;
    }

    public void setRefundType(Integer refundType) {
        this.refundType = refundType;
    }

    public Integer getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(Integer refundAmount) {
        this.refundAmount = refundAmount;
    }

    public String getRefundAmountDetails() {
        return refundAmountDetails;
    }

    public void setRefundAmountDetails(String refundAmountDetails) {
        this.refundAmountDetails = refundAmountDetails;
    }

    public Long getApplicant() {
        return applicant;
    }

    public void setApplicant(Long applicant) {
        this.applicant = applicant;
    }

    public String getApplyReason() {
        return applyReason;
    }

    public void setApplyReason(String applyReason) {
        this.applyReason = applyReason;
    }

    public String getImages() {
        return images;
    }

    public void setImages(String images) {
        this.images = images;
    }

    public Date getApplyAt() {
        return applyAt;
    }

    public void setApplyAt(Date applyAt) {
        this.applyAt = applyAt;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Map<String, Object> getRefundAmountDetailsMap() {
        return refundAmountDetailsMap;
    }

    public void setRefundAmountDetailsMap(Map<String, Object> refundAmountDetailsMap) {
        this.refundAmountDetailsMap = refundAmountDetailsMap;
    }

    public Map<String, Object> getExtraMap() {
        return extraMap;
    }

    public void setExtraMap(Map<String, Object> extraMap) {
        this.extraMap = extraMap;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Integer getAfterSaleStatus() {
        return afterSaleStatus;
    }

    public void setAfterSaleStatus(Integer afterSaleStatus) {
        this.afterSaleStatus = afterSaleStatus;
    }

    public Integer getReceiveStatus() {
        return receiveStatus;
    }

    public void setReceiveStatus(Integer receiveStatus) {
        this.receiveStatus = receiveStatus;
    }

    public Integer getPerformanceStatus() {
        return performanceStatus;
    }

    public void setPerformanceStatus(Integer performanceStatus) {
        this.performanceStatus = performanceStatus;
    }

    public Integer getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(Integer totalAmount) {
        this.totalAmount = totalAmount;
    }

    public Integer getFreightAmount() {
        return freightAmount;
    }

    public void setFreightAmount(Integer freightAmount) {
        this.freightAmount = freightAmount;
    }

    public Integer getPackAmount() {
        return packAmount;
    }

    public void setPackAmount(Integer packAmount) {
        this.packAmount = packAmount;
    }

    public Integer getIsAlone() {
        return isAlone;
    }

    public void setIsAlone(Integer isAlone) {
        this.isAlone = isAlone;
    }

    public Integer getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(Integer discountAmount) {
        this.discountAmount = discountAmount;
    }

    public Integer getActualAmount() {
        return actualAmount;
    }

    public void setActualAmount(Integer actualAmount) {
        this.actualAmount = actualAmount;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Integer getPerformanceType() {
        return performanceType;
    }

    public void setPerformanceType(Integer performanceType) {
        this.performanceType = performanceType;
    }

    @Override
    public String toString() {
        return JSON.toJSONString(this);
    }
}