package com.yc.ship.module.product.dal.dataobject.productSku;

import com.baomidou.mybatisplus.annotation.*;
import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
import lombok.*;

import java.math.BigDecimal;

/**
 * 产品sku DO
 *
 * @author 管理员
 */
@TableName("product_sku")
@KeySequence("product_sku_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductSkuDO extends TenantBaseDO {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 产品ID
     */
    private Long productId;
    /**
     * 成本价格
     */
    private BigDecimal costPrice;
    /**
     * 销售价格
     */
    private BigDecimal salePrice;
    /**
     * 规格类型;ty通用 qj全价 bj半价 mp免票
     */
    private String specType;
    /**
     * 库存
     */
    private Integer stock;

    /**
     * 是否匹配过
     */
    @TableField(exist = false)
    private Boolean isMatched = false;

    @Override
    public int hashCode() {
        int result = costPrice.hashCode();
        result = 31 * result + (this.salePrice != null ? this.salePrice.hashCode() : 0);
        result = 31 * result + (this.specType != null ? this.specType.hashCode() : 0);
        return result;
    }

}