package com.bonus.canteen.core.order.domain;

import com.bonus.common.core.annotation.Excel;
import com.bonus.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

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

/**
 * 订单详情对象 order_detail
 * 
 * @author ruoyi
 * @date 2025-04-14
 */

@Data
public class OrderDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 详情id */
    private Long detailId;

    /** 订单id */
    @Excel(name = "订单id")
    private Long orderId;

    /** 订单日期 yyyy-MM-dd */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "订单日期 yyyy-MM-dd", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderDate;

    /** 商品菜品id */
    @Excel(name = "商品菜品id")
    private Long goodsId;

    /** 商品菜品名称 */
    @Excel(name = "商品菜品名称")
    private String goodsName;

    /** 商品菜品图片路径 */
    @Excel(name = "商品菜品图片路径")
    private String goodsImgUrl;

    /** 菜品详情id */
    @Excel(name = "菜品详情id")
    private Long recipeDetailId;

    /** 售卖价格 分 */
    @Excel(name = "售卖价格 分")
    private BigDecimal salePrice;

    /** 优惠价格 分 */
    @Excel(name = "优惠价格 分")
    private BigDecimal discountPrice;

    /** 计算价格 分 会员为优惠价格  非会员为售卖价格 */
    @Excel(name = "计算价格 分 会员为优惠价格  非会员为售卖价格")
    private BigDecimal finalPrice;

    /** 数量 */
    @Excel(name = "数量")
    private Integer quantity;

    /** 销售方式 1 按份 */
    @Excel(name = "销售方式 1 按份 2称重")
    private Integer salesMode;

    /** 明细类别 1 菜品 2 套餐 3 商品 4 按键 5 补扣 */
    @Excel(name = "明细类别 1 菜品 2 套餐 3 商品 4 按键 5 补扣")
    private Integer detailType;

    /** 订单详情总金额 分 */
    @Excel(name = "订单详情总金额 分")
    private BigDecimal totalAmount;

    /** 订单详情计算总金额 分  会员为优惠总额  非会员为售卖总额 */
    @Excel(name = "订单详情计算总金额 分  会员为优惠总额  非会员为售卖总额")
    private BigDecimal calcTotalAmount;

    /** 实际付款金额 分 */
    @Excel(name = "实际付款金额 分")
    private BigDecimal realAmount;

    /** 已退金额 分 */
    @Excel(name = "已退金额 分")
    private BigDecimal refundAmount;

    /** 订单详情状态 1 正常 2 已退菜 3 部分退菜 */
    @Excel(name = "订单详情状态 1 正常 2 已退菜 3 部分退菜")
    private Integer detailState;

    /** 商品已退数量 */
    @Excel(name = "商品已退数量")
    private Integer refundNum;

    /** 设备sn */
    @Excel(name = "设备sn")
    private String deviceSn;

    /** 流水号 */
    @Excel(name = "流水号")
    private String serialNum;

}
