package com.yiqi.order.domain.vo.weapp;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
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.PageVO;
import com.yiqi.order.domain.vo.OrderRetailGoodsSkuVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


@ApiModel("app订单商品请求对象")
@Data
public class AppGoodsOrderInfoQueryVO {

    @ApiModelProperty("订单ID")

    private Long Id;

    @ApiModelProperty("订单编号")
    private String orderNo;

    @ApiModelProperty("客户ID")

    private Long appUserId;

    @ApiModelProperty("商品类别")
    private String goodsType;

    @ApiModelProperty("商品订单类型")
    private String goodsOrderType;

    @ApiModelProperty("订单总价")
    private BigDecimal totalPrice;

    @ApiModelProperty("抵扣金额")
    private BigDecimal deductAmount;

    @ApiModelProperty("抵扣积分")
    private Integer deductPoint;

    @ApiModelProperty("支付金额")
    private BigDecimal payAmount;

    @ApiModelProperty("配送方式（0=到店自取，1=快递）")
    private String deliveryWay;

    @ApiModelProperty("快递公司")
    private String deliveryCompany;

    @ApiModelProperty("快递单号")
    private String deliveryNo;

    @ApiModelProperty("订单状态（0待支付，1支付待确认，2已支付、待配送，3配送中，4已到货，5确认收货，-1取消订单）")
    private String orderStatus;

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

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("发货时间")
    private Date sendTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("确认收货时间")
    private Date finishTime;

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

    @ApiModelProperty("退款原因")
    private String refundReason;

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

    @ApiModelProperty("退款金额")
    private BigDecimal refundAmount;

    @ApiModelProperty("支付方式（0=微信，1=支付宝，2=现金,3=余额）")
    private String payType;

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

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("订单创建时间")
    private Date createTime;

    @ApiModelProperty("件数")
    private Integer goodsNumber;

    @ApiModelProperty("商品明细")
    private List<OrderRetailGoodsSkuVO> orderGoodsSkuList;
}
