package com.xmomen.module.system.entity;

import com.xmomen.framework.mybatis.model.BaseMybatisModel;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Version;

@Entity
@Table(name = "sys_organization")
public class SysOrganization extends BaseMybatisModel {
    /**
     * 物理主键
     */
    private Integer id;

    /**
     * 组织名称
     */
    private String name;

    /**
     * 
     */
    private String description;

    /**
     * 
     */
    private Integer parentId;

    // 定义数据库列名为ID
    @Column(name = "ID")
    // 定义该字段为主键
    @Id
    // 使用UUID生成器生成主键值
    @GeneratedValue(generator = "UUIDGenerator")
    // 定义获取ID的方法
    public Integer getId() {
        return id;
    }

    // 设置id
    public void setId(Integer id) {
        this.id = id;
        // 如果id为空，则移除有效字段
        if(id == null){
              removeValidField("id");
              return;
        }
        // 否则，添加有效字段
        addValidField("id");
    }

    // 获取name
    @Column(name = "NAME")
    public String getName() {
        return name;
    }

    // 设置name
    public void setName(String name) {
        this.name = name;
        if(name == null){
            removeValidField("name");
            // 移除有效字段
            return;
        }
        // 否则，添加有效字段
        addValidField("name");
    }

    @Column(name = "DESCRIPTION")
    // 设置名称
    public void setName(String name) {
        this.name = name;
        if(name == null){
            removeValidField("name");
            // 移除有效字段
            return;
        }
        // 否则，添加有效字段
        addValidField("name");
    }
    // 获取描述
    public String getDescription() {
        return description;
    }

    // 设置描述
    public void setDescription(String description) {
        this.description = description;
        // 如果描述为空，则移除有效字段
        if(description == null){
              removeValidField("description");
              return;
        }
        // 否则，添加有效字段
        addValidField("description");
    }

    // 获取父ID
    @Column(name = "PARENT_ID")
    public Integer getParentId() {
        return parentId;
    }

    // 设置父ID
    public void setParentId(Integer parentId) {
        this.parentId = parentId;
        // 如果parentId为空
    public void setParentId(Integer parentId) {
              // 移除parentId字段
        this.parentId = parentId;
              // 返回
        if(parentId == null){
              removeValidField("parentId");
        // 添加parentId字段
              return;
        }
        addValidField("parentId");
    }
}