package com.ycwl.basic.model.pc.order.resp;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycwl.basic.model.mobile.goods.GoodsDetailVO;
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @Author：longbinbin
 * @Date：2024/11/29 15:59
 */
@Data
@ApiModel("查询订单信息响应参数")
public class OrderRespVO {
    private Long id;
    private Long memberId;
    private Long faceId;
    private String faceUrl;
    private Integer type;
    private String orderType;
    private String goodsName;
    @ApiModelProperty("用户昵称")
    private String memberNickname;
    private String memberUid;
    @ApiModelProperty("用户真实名称")
    private String memberRealName;
    /**
     * 微信openId
     */
    @ApiModelProperty("微信openId")
    private String openId;
    /**
     * 价格
     */
    @ApiModelProperty("价格")
    private BigDecimal price;
    private BigDecimal slashPrice;
    /**
     * 实际支付价格
     */
    @ApiModelProperty("实际支付价格")
    private BigDecimal payPrice;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;
    /**
     * 推客id
     */
    @ApiModelProperty("推客id")
    private Long brokerId;
    /**
     * 推客优惠码
     */
    @ApiModelProperty("推客优惠码")
    private String promoCode;
    @ApiModelProperty("订单商品类型 1成片，2源素材")
    private Integer goodsType;
    /**
     * 退款原因
     */
    @ApiModelProperty("退款原因")
    private String refundReason;
    /**
     * 退款状态，0未提出，1已通过，2待审核
     */
    @ApiModelProperty("退款状态，0未提出，1已通过，2待审核")
    private Integer refundStatus;
    /**
     * 状态，0未支付，1已支付，2已退款，9已取消
     */
    @ApiModelProperty("状态，0未支付，1已支付，2已退款，9已取消")
    private Integer status;
    /**
     * 订单创建时间
     */
    @ApiModelProperty("订单创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    /**
     * 订单更新时间
     */
    @ApiModelProperty("订单更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateAt;
    /**
     * 订单支付时间
     */
    @ApiModelProperty("订单支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payAt;
    /**
     * 订单取消时间
     */
    @ApiModelProperty("订单取消时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cancelAt;
    /**
     * 订单退款时间
     */
    @ApiModelProperty("订单退款时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date refundAt;
    @ApiModelProperty("订单明细")
    private List<OrderItemVO> orderItemList;
    private Long scenicId;
    private String scenicName;
    private List<GoodsDetailVO> goodsList;

    public BigDecimal getDiscountPrice() {
        if (slashPrice == null) {
            return BigDecimal.ZERO;
        }
        if (slashPrice.compareTo(BigDecimal.ZERO) <= 0) {
            return BigDecimal.ZERO;
        }
        return slashPrice.subtract(price);
    }
}
