package com.yiqi.order.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yiqi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yiqi.common.core.domain.BaseEntity;
import lombok.Data;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

/**
 * 洗衣退款订单对象 order_cloth_refund
 *
 * @author douya
 * @date 2024-08-13
 */
@ApiModel("普通商品退款订单")
@TableName("order_goods_refund")
@Data
public class OrderGoodsRefund extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 订单编号
     */
    @Excel(name = "原订单编号")
    @ApiModelProperty("订单编号")
    private String orderNo;

    /**
     * 退款编号
     */
    @Excel(name = "退款编号")
    @ApiModelProperty("退款编号")
    private String refundNo;

    /**
     * 门店ID
     */
    @Excel(name = "门店ID")
    @ApiModelProperty("门店ID")
    private Long orgId;

    /**
     * 商品类别
     */
    @Excel(name = "商品类别")
    @ApiModelProperty("商品类别")
    private String goodsType;

    /**
     * 来源类型
     */
    @Excel(name = "来源类型")
    @ApiModelProperty("来源类型")
    private String sourceType;

    /**
     * 客户ID
     */
    @Excel(name = "客户ID")
    @ApiModelProperty("客户ID")
    private Long appUserId;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    @ApiModelProperty("联系人")
    private String contactName;

    /**
     * 联系人手机号
     */
    @Excel(name = "联系人手机号")
    @ApiModelProperty("联系人手机号")
    private String contactPhone;

    /**
     * 订单总金额
     */
    @Excel(name = "订单总金额")
    @ApiModelProperty("订单总金额")
    private BigDecimal orderAmount;

    /**
     * 现金支付金额
     */
    @Excel(name = "现金退款金额")
    @ApiModelProperty("现金退款金额")
    private BigDecimal cashRefundAmount;

    /**
     * 微信支付金额
     */
    @Excel(name = "微信退款金额")
    @ApiModelProperty("微信退款金额")
    private BigDecimal wxRefundAmount;

    /**
     * 支付宝支付金额
     */
    @Excel(name = "支付宝退款金额")
    @ApiModelProperty("支付宝退款金额")
    private BigDecimal aliRefundAmount;

    /**
     * 支付宝支付金额
     */
    @Excel(name = "会员卡退款金额")
    @ApiModelProperty("支付宝退款金额")
    private BigDecimal memberRefundAmount;

    /**
     * 支付金额
     */
    @Excel(name = "支付金额")
    @ApiModelProperty("支付金额")
    private BigDecimal payAmount;

    /**
     * 支付信息
     */
    @Excel(name = "支付信息")
    @ApiModelProperty("支付信息")
    private String payInfo;

    /**
     * 支付方式（0=微信，1=支付宝，2=现金，3=会员卡）
     */
    @Excel(name = "支付方式", readConverterExp = "0==微信，1=支付宝，2=现金，3=会员卡")
    @ApiModelProperty("支付方式（0=微信，1=支付宝，2=现金，3=会员卡）")
    private String payType;

    /**
     * 支付宝/微信支付订单号
     */
    @Excel(name = "支付宝/微信支付订单号")
    @ApiModelProperty("支付宝/微信支付订单号")
    private String outTradeOrderNo;

    /**
     * 退款金额
     */
    @Excel(name = "退款金额")
    @ApiModelProperty("退款金额")
    private BigDecimal refundAmount;

    /**
     * 退款信息
     */
    @Excel(name = "退款信息")
    @ApiModelProperty("退款信息")
    private String refundInfo;

    /**
     * 退款申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "退款申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("退款申请时间")
    private Date refundApplyTime;

    /**
     * 退款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("退款时间")
    private Date refundTime;

    /**
     * 退款状态（0=正常，1=退款申请中，2=退款同意，3=退款拒绝，4=退款取消）
     */
    @Excel(name = "退款状态", readConverterExp = "0==正常，1=退款申请中，2=退款同意，3=退款拒绝，4=退款取消")
    @ApiModelProperty("退款状态（0=正常，1=退款申请中，2=退款同意，3=退款拒绝，4=退款取消）")
    private String refundStatus;

    /**
     * 退款原因
     */
    @Excel(name = "退款原因")
    @ApiModelProperty("退款原因")
    private String refundReason;

    /**
     * 拒绝原因
     */
    @Excel(name = "拒绝原因")
    @ApiModelProperty("拒绝原因")
    private String rejectReason;

    /**
     * 删除状态（0=正常,2=删除）
     */
    @ApiModelProperty("删除状态（0=正常,2=删除）")
    private String delFlag;


}
