package com.xisc.pm.domain.entity;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonInclude;

import io.choerodon.mybatis.annotation.ModifyAudit;
import io.choerodon.mybatis.annotation.VersionAudit;
import io.choerodon.mybatis.domain.AuditDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

/**
 * 编码规则模块信息
 *
 * @author 曾俊 JUN.ZENG@HAND-CHINA.COM 2024-09-20 16:07:14
 */
@Setter
@Getter
@ApiModel("编码规则模块信息")
@VersionAudit
@ModifyAudit
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Table(name = "PM_RULE_CODE_SEQ")
public class PmRuleCodeSeq extends AuditDomain {

    public static final String FIELD_PM_RULE_CODE_SEQ_ID = "pmRuleCodeSeqId";
    public static final String FIELD_RULE_CODE = "ruleCode";
    public static final String FIELD_RULE_NAME = "ruleName";
    public static final String FIELD_RESET_KEY = "resetKey";
    public static final String FIELD_INIT_VALUE = "initValue";
    public static final String FIELD_CURRENT_VALUE = "currentValue";
    public static final String FIELD_TENANT_ID = "tenantId";
    public static final String FIELD_OBJECT_VERSION_NUMBER = "objectVersionNumber";
    public static final String FIELD_CREATION_DATE = "creationDate";
    public static final String FIELD_CREATED_BY = "createdBy";
    public static final String FIELD_LAST_UPDATED_BY = "lastUpdatedBy";
    public static final String FIELD_LAST_UPDATE_DATE = "lastUpdateDate";
    public static final String FIELD_ATTRIBUTE1 = "attribute1";
    public static final String FIELD_ATTRIBUTE2 = "attribute2";
    public static final String FIELD_ATTRIBUTE3 = "attribute3";
    public static final String FIELD_ATTRIBUTE4 = "attribute4";
    public static final String FIELD_ATTRIBUTE5 = "attribute5";

    @ApiModelProperty("表ID，主键")
    @Id
    @GeneratedValue
    private Long pmRuleCodeSeqId;
    @ApiModelProperty(value = "规则编码", required = true)
    @NotBlank
    private String ruleCode;
    @ApiModelProperty(value = "规则名称", required = true)
    @NotBlank
    private String ruleName;
    @ApiModelProperty(value = "重置规则key", required = true)
    @NotBlank
    private String resetKey;
    @ApiModelProperty(value = "初始值", required = true)
    @NotNull
    private Long initValue;
    @ApiModelProperty(value = "当前值", required = true)
    @NotNull
    private Long currentValue;
    @ApiModelProperty(value = "租户ID", required = true)
    @NotNull
    private Long tenantId;
    @ApiModelProperty(value = "行版本号，用来处理锁", required = true)
    @NotNull
    private Long objectVersionNumber;
    
    @ApiModelProperty(value = "")
    private String attribute1;
    @ApiModelProperty(value = "")
    private String attribute2;
    @ApiModelProperty(value = "")
    private String attribute3;
    @ApiModelProperty(value = "")
    private String attribute4;
    @ApiModelProperty(value = "")
    private String attribute5;

}
