package com.yiqi.order.domain;

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

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

/**
 * 充值订单分段支付记录对象 order_recharge_instalment
 *
 * @author ruoyi
 * @date 2023-10-30
 */
@ApiModel("充值订单分段支付记录")
@TableName("order_recharge_instalment")
@Data
public class OrderRechargeInstalment extends BaseEntity {
    private static final long serialVersionUID = 1L;

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

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

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

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

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

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

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("支付时间")
    private Date payTime;

    /**
     * 组织ID
     */
    @Excel(name = "组织ID")
    @ApiModelProperty("组织ID")
    private Long orgId;

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

    /**
     * 订单状态（0=待付款，1=已付款、待确认，2=已付款，3=已完成，4=退款申请中，5=退款失败，6=已退款，100=已取消）
     */
    @Excel(name = "订单状态", readConverterExp = "0==待付款，1=已付款、待确认，2=已付款，3=已完成，4=退款申请中，5=退款失败，6=已退款，100=已取消")
    @ApiModelProperty("订单状态（0=待付款，1=已付款、待确认，2=已付款，3=已完成，100=已取消）")
    private String orderStatus;


    @Excel(name = "订单状态", readConverterExp = "0=未退款，1=退款中，2=退款成功，3=退款失败")
    @ApiModelProperty("退款状态（0=未退款，1=退款中，2=退款成功，3=退款失败）")
    private String refundStatus;

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

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