package com.cpop.mall.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.RelationOneToMany;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

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

/**
 * @author DB
 * @createTime 2023/11/03 15:54
 * @description
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "商城订单详情返回对象")
public class OrderInfoVo implements Serializable {

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    private String id;

    /**
     * 订单状态(0:待付款;1:待发货;2:待确认;3:已完成;4:退款/售后中)
     */
    @ApiModelProperty("订单状态(0:待付款;1:待发货;2:待确认;3:已完成;4:退款/售后中)")
    private Integer orderStatus;

    /**
     * 总金额
     */
    @ApiModelProperty("总金额")
    private BigDecimal totalAmount;

    /**
     * 总积分
     */
    @ApiModelProperty("总积分")
    private Long totalPoint;

    /**
     * 支付类型
     */
    @ApiModelProperty("支付类型")
    private Integer payType;

    /**
     * 下单用户名
     */
    @ApiModelProperty("下单用户名")
    private String payUserName;

    /**
     * 收货人名
     */
    @ApiModelProperty("收货人名")
    private String receiveName;

    /**
     * 收货人电话
     */
    @ApiModelProperty("收货人电话")
    private String receivePhone;

    /**
     * 收货地址
     */
    @ApiModelProperty("收货地址")
    private String receiveAddress;

    /**
     * 商品名
     */
    @ApiModelProperty("商品名")
    private String productNames;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remarks;

    /**
     * 下单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @ApiModelProperty("下单时间")
    private LocalDateTime createTime;

    /**
     * 订单详情vo
     */
    @ApiModelProperty("订单详情")
    private List<OrderDetailVo> detailList;
}
