package com.czg.order.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 购物车 实体类。
 *
 * @author ww
 * @since 2025-02-20
 */
@Data

@NoArgsConstructor
@AllArgsConstructor
@Table("tb_cashier_cart")
public class CashierCart implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 店铺Id
     */
    private Long shopId;

    /**
     * skuId
     */
    private Long skuId;

    /**
     * 商品Id
     */
    private Long productId;

    /**
     * 商品名称(临时菜使用)
     */
    private String productName;

    /**
     * 规格描述(临时菜使用)
     */
    private String skuName;

    /**
     * 数量
     */
    private BigDecimal number;
    /**
     * 打包数量
     */
    private BigDecimal packNumber;

    /**
     * 台桌桌码
     * 平台类型
     * 小程序为 桌码
     * 其余为
     * 收银机客户端  PC+唯一值
     * PC管理端 APC+唯一值
     * APP管理端 APP+唯一值
     */
    private String tableCode;

    /**
     * 是否赠送
     */
    private Integer isGift;
    /**
     * 是否参加限时折扣
     */
    private Integer isTimeDiscount;

    /**
     * 是否是临时菜
     */
    private Integer isTemporary;

    /**
     * 单品改价金额
     */
    private BigDecimal discountSaleAmount;

    /**
     * 改价备注
     */
    private String discountSaleNote;

    /**
     * 是否打票
     */
    private Integer isPrint;

    /**
     * 是否等叫
     */
    private Integer isWaitCall;

    /**
     * 套餐商品选择信息
     */
    private String proGroupInfo;

    /**
     * 备注
     */
    private String remark;

    @Column(onInsertValue = "now()")
    private LocalDateTime createTime;

    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private LocalDateTime updateTime;

}
