package cn.iocoder.yudao.module.erp.dal.dataobject.autocode;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 编码规则组成 DO
 *
 * @author 内蒙必硕
 */
@TableName("erp_autocode_part")
@KeySequence("erp_autocode_part_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AutocodePartDO extends BaseDO {

    /**
     * ID
     */
    @TableId
    private Long id;
    /**
     * 规则ID
     */
    private Long ruleId;
    /**
     * 分段序号
     */
    private Integer partIndex;
    /**
     * 分段类型
     */
    private String partType;
    /**
     * 分段编号
     */
    private String partCode;
    /**
     * 分段名称
     */
    private String partName;
    /**
     * 分段长度
     */
    private Integer partLength;
    /**
     * 日期时间格式
     */
    private String datetimeFormat;
    /**
     * 输入字符
     */
    private String inputCharacter;
    /**
     * 固定字符
     */
    private String fixCharacter;
    /**
     * 流水号起始值
     */
    private Integer seriaStartNo;
    /**
     * 流水号步长
     */
    private Integer seriaStep;
    /**
     * 流水号当前值
     */
    private Integer seriaNowNo;
    /**
     * 流水号是否循环
     */
    private String cycleFlag;
    /**
     * 循环方式
     *
     * 枚举 {@link TODO erp__autocode_cyclemethod 对应的类}
     */
    private String cycleMethod;
    /**
     * 备注
     */
    private String remark;
    /**
     * 是否启用
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Boolean isEnable;

}