package com.ibeetl.admin.core.entity;

import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import org.beetl.sql.core.annotatoin.AssignID;
import org.beetl.sql.core.annotatoin.AutoID;
import org.beetl.sql.core.annotatoin.SeqID;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonView;
import com.ibeetl.admin.core.util.ValidateConfig;

/**
 * 描述: 字典
 * @author : xiandafu
 */
public class CoreDict extends BaseEntity {

	@NotNull(message = "ID不能为空", groups = ValidateConfig.UPDATE.class)
	@SeqID(name = ORACLE_CORE_SEQ_NAME)
	@AutoID
	private Long id;
	
    private String value;   // 数据值
    //删除标识
    @JsonIgnore
    protected Integer delFlag = 0;
    //创建时间
    protected Date createTime;
    @NotBlank(message = "字典类型不能为空", groups = ValidateConfig.ADD.class)
    @JsonView(TypeListView.class)
    private String type;    //类型
    @JsonView(TypeListView.class)
    @NotBlank(message = "字典类型描述不能为空")
    private String typeName; //类型描述
    @NotBlank(message = "字典值不能为空", groups = ValidateConfig.ADD.class)
    
    @NotBlank(message = "字典值名称不能为空")
    private String name;    // 标签名
    private Integer sort;    // 排序
    private Long parent;  //父Id
    private String remark;  //备注

    

    public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getType() {
        return type;
    }

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

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public Long getParent() {
        return parent;
    }

    public void setParent(Long parent) {
        this.parent = parent;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }



    public Integer getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }


    public interface TypeListView{
    }

}
