package com.yida.data.mall.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.entity.mall.EduBillOrderStudent;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 账单订单后台列表返回数据
 *
 * @author ZYJ
 * @date 2022/6/29
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "BillOrderSelectPageVO", description = "账单订单后台列表返回数据")
public class BillOrderSelectPageVO implements Serializable {

    private static final long serialVersionUID = 6184891052766547218L;

    @ApiModelProperty("订单id")
    private Long orderId;

    @ApiModelProperty("订单号")
    private String orderCode;

    @ApiModelProperty("流水号")
    private String transactionNumber;

    @ApiModelProperty("账单id")
    private Long billId;

    @ApiModelProperty("缴费单标题")
    private String billTitle;

    @ApiModelProperty("缴费项目字符串")
    private String items;

    @ApiModelProperty(value = "订单总金额")
    private BigDecimal totalMoney;

    @ApiModelProperty(value = "实际支付金额")
    private BigDecimal practicalMoney;

    @ApiModelProperty("支付人手机号(家长手机)")
    private String phone;

    @ApiModelProperty("支付时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime payDate;

    @ApiModelProperty(value = "订单状态：0：待付款 1：付款中 2：交易完成（正常支付成功） 3：待退款 4：交易关闭（a:超时未支付,b:退款成功")
    private String orderStatus;

    @ApiModelProperty(value = "支付状态：0：未支付(默认) 1：已支付 2：已退款 3：已取消")
    private String payStatus;

    @ApiModelProperty(value = "支付方式：1：微信，2：支付宝，3：银联，4：其他待定")
    private String payWay;

    @ApiModelProperty("具体支付类型")
    private Integer payType;

    @ApiModelProperty(value = "是否退款：0：否（默认） 1：是")
    private String isRefund;

    @ApiModelProperty("退款时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime refundDate;

    @ApiModelProperty("订单学生信息")
    private EduBillOrderStudent student;
}