package com.yonge.cooleshow.biz.dal.entity;

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 com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;

/**
 * 退款申请表
 */
@TableName("user_order_refund")
@ApiModel(value = "UserOrderRefund对象", description = "退款申请表")
public class UserOrderRefund implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id_", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("用户id ")
    @TableField(value = "user_id_")
    private Long userId;
    @ApiModelProperty("订单id")
    @TableField(value = "order_id_")
    private Long orderId;
    @ApiModelProperty("订单号")
    @TableField(value = "order_no_")
    private String orderNo;
    @ApiModelProperty("订单详情id（多个详情,分割） ")
    @TableField(value = "oredr_detil_ids_")
    private String oredrDetilIds;
    @ApiModelProperty("状态 DOING、审核中 PASS、通过 UNPASS、不通过 ")
    @TableField(value = "status_")
    private AuthStatusEnum status;
    @ApiModelProperty("申请退费金额 ")
    @TableField(value = "apply_amount_")
    private BigDecimal applyAmount;
    @ApiModelProperty("实际退费金额 ")
    @TableField(value = "actual_amount_")
    private BigDecimal actualAmount;
    @ApiModelProperty("退款描述 ")
    @TableField(value = "reason_")
    private String reason;
    @ApiModelProperty("审核人 ")
    @TableField(value = "operate_id_")
    private Long operateId;
    @ApiModelProperty("审核描述 ")
    @TableField(value = "operate_reason_")
    private String operateReason;
    @TableField(value = "create_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    @TableField(value = "update_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    public Long getId() {
        return id;
    }

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

    public Long getUserId() {
        return userId;
    }

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

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getOredrDetilIds() {
        return oredrDetilIds;
    }

    public void setOredrDetilIds(String oredrDetilIds) {
        this.oredrDetilIds = oredrDetilIds;
    }

    public AuthStatusEnum getStatus() {
        return status;
    }

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

    public BigDecimal getApplyAmount() {
        return applyAmount;
    }

    public void setApplyAmount(BigDecimal applyAmount) {
        this.applyAmount = applyAmount;
    }

    public BigDecimal getActualAmount() {
        return actualAmount;
    }

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

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Long getOperateId() {
        return operateId;
    }

    public void setOperateId(Long operateId) {
        this.operateId = operateId;
    }

    public String getOperateReason() {
        return operateReason;
    }

    public void setOperateReason(String operateReason) {
        this.operateReason = operateReason;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getOrderNo() {
        return orderNo;
    }

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