package com.hzs.common.domain.system.config;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * <p>
 * 条码配置
 * </p>
 *
 * @author hzs
 * @since 2022-10-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("BD_BAR_CODE")
@KeySequence("BD_BAR_CODE_SEQ")
public class BdBarCode extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId("PK_ID")
    private Long pkId;

    /**
     * 产品主键
     */
    @TableField("PK_PRODUCT")
    private Integer pkProduct;

    /**
     * 前缀
     */
    @TableField("PREFIX")
    private String prefix;

    /**
     * 是否年
     */
    @TableField("IS_YEAR")
    private Integer isYear;

    /**
     * 是否月
     */
    @TableField("IS_MONTH")
    private Integer isMonth;

    /**
     * 尾号位数
     */
    @TableField("TAIL_NUMBER")
    private Integer tailNumber;

    /**
     * 是否初始化  是则通过定时任务初始化当前尾号
     */
    @TableField("IS_INITIALIZE")
    private Integer isInitialize;

    /**
     * 初始化尾号  当前尾号为空时，当前尾号变为初始化尾号
     */
    @TableField("END_NUMBER")
    private Long endNumber;

    /**
     * 当前尾号 已经生成的条形码最新的尾号
     */
    @TableField("CURRENT_NUMBER")
    private Long currentNumber;

    /**
     * 条码总数
     */
    @TableField("TOTAL_BAR_CODE")
    private Integer totalBarCode;

    /**
     * 已使用总数
     */
    @TableField("USED_BAR_CODE")
    private Integer usedBarCode;

    /**
     * 是否启用 EnableStatus
     */
    @TableField("ENABLE_STATE")
    private Integer enableState;

    /**
     * 追溯批次
     */
    @TableField("BATCH")
    private Integer batch;

    /**
     * 生效日期
     */
    @TableField("EFFECTIVE_DATE")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date effectiveDate;





}
