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

import com.fasterxml.jackson.annotation.JsonFormat;
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 OrderAppRespVO {
    private Long id;
    private Integer type;
    /**
     * 价格
     */
    @ApiModelProperty("价格")
    private BigDecimal price;
    private BigDecimal slashPrice;
    /**
     * 实际支付价格
     */
    @ApiModelProperty("实际支付价格")
    private BigDecimal payPrice;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;
    /**
     * 退款原因
     */
    @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;
    private Long scenicId;
    @ApiModelProperty("景区名称")
    private String scenicName;
    /**
     * 商品类型，0其他，1成片，2原片，3模板成片
     */
    @ApiModelProperty("商品类型，0成片，12源素材")
    private Integer goodsType;
    @ApiModelProperty("订单明细")
    private List<OrderItemVO> orderItemList;

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