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

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

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

/**
 * @Author：longbinbin
 * @Date：2024/11/29 16:33
 */
@Data
@TableName("order")
public class OrderEntity {
    @TableId
    private Long id;
    private Long scenicId;
    /**
     * 订单类型： -1 全场打包 0 单点 1 打包
     */
    private int type;
    private Integer priceConfigId;
    /**
     * 用户id
     */
    private Long memberId;
    private Long faceId;
    /**
     * 微信openId
     */
    private String openId;
    /**
     * 划线价
     */
    private BigDecimal slashPrice;
    private BigDecimal couponPrice = BigDecimal.ZERO;
    private Integer couponId;
    private Integer couponRecordId;
    /**
     * 优惠价格
     */
    private BigDecimal price;
    /**
     * 实际支付价格
     */
    private BigDecimal payPrice;
    /**
     * 备注
     */
    private String remark;
    /**
     * 推客id
     */
    private Long brokerId;
    /**
     * 推客优惠码
     */
    private String promoCode;
    /**
     * 退款原因
     */
    private String refundReason;
    /**
     * 退款状态，0未提出，1已通过，2待审核
     */
    private Integer refundStatus;
    /**
     * 状态，0未支付，1已支付，2已退款，9已取消
     */
    private Integer status;
    /**
     * 订单创建时间
     */
    private Date createAt;
    /**
     * 订单更新时间
     */
    private Date updateAt;
    /**
     * 订单支付时间
     */
    private Date payAt;
    /**
     * 订单取消时间
     */
    private Date cancelAt;
    /**
     * 订单退款时间
     */
    private Date refundAt;

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