package com.cf.imes.module.executor.dal.dataobject.goods;

import com.baomidou.mybatisplus.annotation.*;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;

import java.math.BigDecimal;

/**
 * 订单商品 DO
 *
 * @author 晨丰科技
 */
@TableName("order_goods")
@KeySequence("order_goods_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GoodsDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    // 组织 ID
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long organId;
    /**
     * 订单号
     */
    private Long orderId;
    /**
     * 设计端商品ID
     */
    private String rawGoodsId;
    /**
     * 商品 ID
     */
    private String goodsId;
    /**
     * 排单 ID
     */
    private Long planId;
    /**
     * 商品名称
     */
    private String goodsName;
    /**
     * 材质：颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板
     */
    private String material;
    /**
     * 纹路 0 正纹 1 可翻转 2 反纹
     */
    private Boolean texture;
    /**
     * 颜色
     */
    private String color;
    /**
     * 背面颜色
     */
    private String colorBlack;
    /**
     * 宽度
     */
    private BigDecimal width;
    /**
     * 高度
     */
    private BigDecimal height;
    /**
     * 厚度
     */
    private BigDecimal thickness;
    /**
     * 价格
     */
    private Double price;
    /**
     * 品牌
     */
    private String brand;
    /**
     * 规格
     */
    private String spec;
    /**
     * 备注
     */
    private String remark;
    /**
     * 是否删除
     */
    private Boolean deleted;

    /**
     * 板件数量
     */
    private Integer plateNum;

    /**
     * 已排单小板数量
     */
    private Integer plannedPlateNum;

    /**
     * 已分解贴皮板件数量
     */
    private Integer decomposedVeneerPlateNum;

    /**
     * 已排贴皮板件数量，所有有效贴皮面均已排单时计数
     */
    private Integer plannedVeneerPlateNum;

    /**
     * 板件总面积
     */
    private Double area;

    /**
     * 已排单面积
     */
    private Double plannedPlateArea;

    /**
     * 版本号：乐观锁用
     */
    private int version;
}
