package com.crunii.micro.domain.entity.main;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 动态表配置列信息表;
 * @author : zjw
 * @date : 2023-11-27
 */
@Entity
@DynamicInsert
@DynamicUpdate
@Getter
@Setter
@ToString
@EqualsAndHashCode(of = {"id"})
@GenericGenerator(name = "idGenerator", strategy = "com.crunii.micro.core.distributed.DistributedSnowFlakeId")
@ApiModel(description = "动态表配置列信息表")
@Table(name="YCQ_DYNAMIC_COLUMN")
public class YcqDynamicColumn implements Serializable{
    /** 主键 */
    @ApiModelProperty(value = "主键")
    @Id
    @GeneratedValue(generator = "idGenerator")
    private Long id ;

    @Column(name = "FORM_ID")
    private Long formId;
    /** 列英文名称 */
    @ApiModelProperty(value = "列英文名称")
    @Column(name = "COLUMN_NAME")
    private String columnName ;
    /** 列中文名 */
    @ApiModelProperty(value = "列中文名")
    @Column(name = "COLUMN_NAME_CHN")
    private String columnNameChn ;
    /** 列类型 */

    @ApiModelProperty(value = "列类型")
    @Column(name = "COLUMN_TYPE")
    private String columnType ;
    /** 列描述 */
    @ApiModelProperty(value = "列描述")
    @Column(name = "COLUMN_NAME_DESC")
    private String columnNameDesc ;
    /** 是否可以为空 */
    @ApiModelProperty(value = "是否可以为空")
    @Column(name = "NOT_EMPTY")
    private Integer notEmpty ;
    /** 创建人 */
    @ApiModelProperty(value = "创建人")
    @Column(name = "CREATE_ID")
    private Integer createId ;
    /** 创建时间 */
    @ApiModelProperty(value = "创建时间")
    @Column(name = "CREATE_TIME")
    private Date createTime ;
    /** 更新人 */
    @ApiModelProperty(value = "更新人")
    @Column(name = "UPDATE_ID")
    private Integer updateId ;
    /** 更新时间 */
    @ApiModelProperty(value = "更新时间")
    @Column(name = "UPDATE_TIME")
    private Date updateTime ;
    /** 是否被删除 */
    @ApiModelProperty(value = "是否被删除")
    @Column(name = "IS_DELETE")
    private Integer isDelete ;
    /** 乐观锁 */
    @ApiModelProperty(value = "乐观锁")
    @Column(name = "REVISION")
    private Integer revision ;

    @ApiModelProperty(value = "1 活动  2自定义表单")
    @Column(name = "type")
    private Integer type ;

    public Integer getType(){
        return this.isDelete;
    }

    public void setType(Integer type){
        this.type=type;
    }


    /** 主键 */
    public Long getId(){
        return this.id;
    }
    /** 主键 */
    public void setId(Long id){
        this.id=id;
    }
    /** 列英文名称 */
    public String getColumnName(){
        return this.columnName;
    }
    /** 列英文名称 */
    public void setColumnName(String columnName){
        this.columnName=columnName;
    }
    /** 列中文名 */
    public String getColumnNameChn(){
        return this.columnNameChn;
    }
    /** 列中文名 */
    public void setColumnNameChn(String columnNameChn){
        this.columnNameChn=columnNameChn;
    }
    /** 列类型 */
    public String getColumnType(){
        return this.columnType;
    }
    /** 列类型 */
    public void setColumnType(String columnType){
        this.columnType=columnType;
    }
    /** 列描述 */
    public String getColumnNameDesc(){
        return this.columnNameDesc;
    }
    /** 列描述 */
    public void setColumnNameDesc(String columnNameDesc){
        this.columnNameDesc=columnNameDesc;
    }
    /** 是否可以为空 */
    public Integer getNotEmpty(){
        return this.notEmpty;
    }
    /** 是否可以为空 */
    public void setNotEmpty(Integer notEmpty){
        this.notEmpty=notEmpty;
    }
    /** 创建人 */
    public Integer getCreateId(){
        return this.createId;
    }
    /** 创建人 */
    public void setCreateId(Integer createId){
        this.createId=createId;
    }
    /** 创建时间 */
    public Date getCreateTime(){
        return this.createTime;
    }
    /** 创建时间 */
    public void setCreateTime(Date createTime){
        this.createTime=createTime;
    }
    /** 更新人 */
    public Integer getUpdateId(){
        return this.updateId;
    }
    /** 更新人 */
    public void setUpdateId(Integer updateId){
        this.updateId=updateId;
    }
    /** 更新时间 */
    public Date getUpdateTime(){
        return this.updateTime;
    }
    /** 更新时间 */
    public void setUpdateTime(Date updateTime){
        this.updateTime=updateTime;
    }
    /** 是否被删除 */
    public Integer getIsDelete(){
        return this.isDelete;
    }
    /** 是否被删除 */
    public void setIsDelete(Integer isDelete){
        this.isDelete=isDelete;
    }
    /** 乐观锁 */
    public Integer getRevision(){
        return this.revision;
    }
    /** 乐观锁 */
    public void setRevision(Integer revision){
        this.revision=revision;
    }
}
