package com.yiqi.order.domain.vo;

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 io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

@Data
public class GoodsOrderInfoVO {

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

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

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

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

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

    private Long id;

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

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

    /** 快递公司 */
    @Excel(name = "快递公司")
    @ApiModelProperty("快递公司")
    private String deliveryCompany;

    /** 快递单号 */
    @Excel(name = "快递单号")
    @ApiModelProperty("快递单号")
    private String deliveryNo;

    /** 订单总价 */
    @Excel(name = "订单总价")
    @ApiModelProperty("订单总价")
    private BigDecimal totalPrice;

    /** 抵扣金额 */
    @Excel(name = "抵扣金额")
    @ApiModelProperty("抵扣金额")
    private BigDecimal deductAmount;

    /** 抵扣积分 */
    @Excel(name = "抵扣积分")
    @ApiModelProperty("抵扣积分")
    private Integer deductPoint;

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

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

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

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

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

    @ApiModelProperty("预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    private Date appointmentTime;

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

    @ApiModelProperty("省")
    private String province;

    @ApiModelProperty("城市")
    private String city;

    @ApiModelProperty("区域")
    private String area;

    @ApiModelProperty("地址")
    private String address;

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

    @ApiModelProperty("门牌号")
    private String addressDetail;

    @ApiModelProperty("联系人姓名")
    private String contactName;

    @ApiModelProperty("联系人手机号")
    private String contactPhone;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phoneNumber;

    /** 昵称 */
    @Excel(name = "昵称")
    @ApiModelProperty("昵称")
    private String nickName;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    @ApiModelProperty("真实姓名")
    private String realName;

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

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

    @ApiModelProperty("优惠券抵扣金额")
    private BigDecimal couponDeductAmount;

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

    @ApiModelProperty("APP用户扣款前余额")
    private BigDecimal appUserBalanceAmount;
}
