/*
 * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 */

package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 *
 *
 * @author LGH
 * @date 2019-08-20 09:55:01
 */
@Data
@TableName("tz_order_refund")
public class OrderRefund implements Serializable{
    private static final long serialVersionUID = 1L;

    /**
     * 记录ID
     */
    @TableId(value = "refund_id", type = IdType.AUTO)
    private Long refundId;
    /**
     * 退款编号
     */
    private String refundSn;
    /**
     * 店铺ID
     */
    private Long shopId;
    /**
     * 买家ID
     */
    private String userId;
    /**
     * 订单ID
     */
    private Long orderId;
    /**
     * 订单编号
     */
    private String orderNumber;

    /**
     * 退款单类型（1:整单退款,2:单个物品退款）
     */
    private Integer refundType;
    /**
     * 订单项ID
     */
    private Long orderItemId;
    /**
     * 退货数量(0:为全部订单项)
     */
    private Integer goodsNum;
    /**
     * 退款金额
     */
    private Double refundAmount;
    /**
     * 退还积分
     */
    @TableField(exist = false)
    private Integer refundScore;
    /**
     * 申请类型:1,仅退款,2退款退货，5差价退款
     */
    private Integer applyType;
    /**
     * 是否接收到商品(1:已收到,0:未收到)
     */
    private Boolean isReceiver;

    /**
     * 是否填写了退货物流信息(1:已填写,0:未填写)
     */
    private Boolean isReturnLogistics;

    /**
     * 申请原因
     */
    private String buyerReason;
    /**
     * 申请说明
     */
    private String buyerDesc;
    /**
     * 联系方式
     */
    private String buyerMobile;
    /**
     * 文件凭证json
     */
    private String photoFiles;
    /**
     * 退款单状态 10:待审核 20:处理中 30:驳回退款 40:撤销退款 60:待退货（一审同意） 65:待确认收货（二审待审核） 70:退款完成
     */
    private Integer returnMoneySts;
    /**
     * 拒绝原因
     */
    private String rejectMessage;
    /**
     * 卖家备注
     */
    private String sellerMsg;
    /**
     * 申请时间
     */
    private Date applyTime;
    /**
     * 受理时间
     */
    private Date handelTime;
    /**
     * 发货时间
     */
    private Date shipTime;
    /**
     * 收货时间
     */
    private Date receiveTime;
    /**
     * 撤销时间
     */
    private Date cancelTime;
    /**
     * 退款时间
     */
    private Date refundTime;
    /**
     * 同意退款时间
     */
    private Date decisionTime;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 拒绝时间
     */
    private Date rejectTime;

    /**
     * 退款单总分销金额
     */
    private Double distributionTotalAmount = 0.0;

    /**
     * 平台退款金额（退款时将这部分钱退回给平台，所以商家要扣除从平台这里获取的金额）
     */
    private Double platformRefundAmount = 0.0;

    private Double freightAmount;

    /**
     * 退款总金额
     */
    private BigDecimal refundTotalMoney;

    /**
     * 该退款单是否处理完成
     */
    private Boolean handler;

    /**
     * 企业用户用积分抵扣，后台充值积分
     */
    private Long offsetPoints;
    //过期的积分
    private Long refundExpiredScore;


    @TableField(exist = false)
    @ApiModelProperty(value = "退款商品详情")
    private List<OrderRefundSku> orderRefundSkuList;

    /**
     * 渠道类型  0-本渠道 1-市民请集合
     */
    @ApiModelProperty(value = "渠道类型  0-本渠道 1-市民请集合")
    private Integer channelType;


}
