package com.xmomen.module.user.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_users")
public class SysUsers extends BaseMybatisModel {
    /**
     * 
     */
    private Integer id;

    /**
     * 登陆用户名
     */
    private String username;

    /**
     * 真实姓名
     */
    private String realname;

    /**
     * 密码盐值
     */
    private String salt;

    /**
     * 登陆密码
     */
    private String password;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 1-男，2女
     */
    private Integer sex;

    /**
     * 邮箱
     */
    private String email;

    /**
     * QQ
     */
    private String qq;

    /**
     * 手机号
     */
    private String phoneNumber;

    /**
     * 办公室电话
     */
    private String officeTel;

    /**
     * 0-禁用，1-启用
     */
    private Integer locked;

    @Column(name = "ID")
    // 标识该字段为数据库表的主键
    @Id
    // 使用UUID生成器生成主键
    @GeneratedValue(generator = "UUIDGenerator")
    public Integer getId() {
        // 返回主键值
        return id;
    }

    public void setId(Integer id) {
        // 设置主键值
        this.id = id;
        // 如果主键值为空
        if(id == null){
              // 移除有效字段
              removeValidField("id");
              // 返回
              return;
        }
    // 获取用户名
        // 添加有效字段
        addValidField("id");
    }

    @Column(name = "USERNAME")
    // 设置用户名
    public String getUsername() {
        return username;
        // 如果用户名为空，则移除验证字段
    }

    public void setUsername(String username) {
        this.username = username;
        // 否则，添加验证字段
        if(username == null){
              removeValidField("username");
              return;
        }
        addValidField("username");
    }
    // 获取真实姓名

    @Column(name = "REALNAME")
    public String getRealname() {
        return realname;
    }
    // 设置真实姓名

    public void setRealname(String realname) {
        // 如果真实姓名为空，则移除验证字段
        this.realname = realname;
        if(realname == null){
              removeValidField("realname");
              return;
        // 否则，添加验证字段
        }
        addValidField("realname");
    }
    // 获取盐值

    @Column(name = "SALT")
    public String getSalt() {
        return salt;
    }
    // 设置盐值

    public void setSalt(String salt) {
        // 如果盐值为空，则移除有效字段
        this.salt = salt;
        if(salt == null){
              removeValidField("salt");
              return;
        // 否则，添加有效字段
        }
        addValidField("salt");
    // 获取密码
    }

    @Column(name = "PASSWORD")
    public String getPassword() {
        return password;
    // 设置密码
    }

        // 如果密码为空，则移除密码字段
    public void setPassword(String password) {
        this.password = password;
        if(password == null){
              removeValidField("password");
        // 否则，添加密码字段
              return;
        }
        addValidField("password");
    }

    // 注释：获取年龄
    @Column(name = "AGE")
    public Integer getAge() {
        return age;
    }

    // 注释：设置年龄
    public void setAge(Integer age) {
        this.age = age;
        if(age == null){
              removeValidField("age");
              return;
        }
        addValidField("age");
    }

    // 注释：获取性别
    @Column(name = "SEX")
    public Integer getSex() {
        return sex;
    }
    // 设置性别

        // 将传入的性别赋值给成员变量
    public void setSex(Integer sex) {
        // 如果性别为空
        this.sex = sex;
              // 移除有效的字段
        if(sex == null){
              // 返回
              removeValidField("sex");
              return;
        // 添加有效的字段
        }
        addValidField("sex");
    }

    @Column(name = "EMAIL")
    public String getEmail() {
        return email;
    }
        // 判断email是否为空
              // 如果为空，移除email字段

              // 返回
    public void setEmail(String email) {
        this.email = email;
        // 如果不为空，添加email字段
        if(email == null){
              removeValidField("email");
              return;
    // 获取QQ字段
        }
        addValidField("email");
    }

    @Column(name = "QQ")
    // 设置QQ字段
    public String getQq() {
        return qq;
        // 判断qq是否为空
    }

    public void setQq(String qq) {
        this.qq = qq;
        if(qq == null){
              removeValidField("qq");
              return;
        }
        addValidField("qq");

    @Column(name = "OFFICE_TEL")
    public String getOfficeTel() {
        return officeTel;
    }
    // 设置办公室电话

        // 将传入的办公室电话赋值给成员变量
    public void setOfficeTel(String officeTel) {
        // 如果办公室电话为空
        this.officeTel = officeTel;
              // 移除有效的字段
        if(officeTel == null){
              // 返回
              removeValidField("officeTel");
              return;
        // 添加有效的字段
        }
        addValidField("officeTel");
    }
    // 获取锁定状态

    @Column(name = "LOCKED")
    // 获取locked属性的值
    public Integer getLocked() {
        return locked;
    }

    // 设置locked属性的值
    public void setLocked(Integer locked) {
        this.locked = locked;
        // 如果locked为null，则移除locked属性
        if(locked == null){
              removeValidField("locked");
              return;
        }
        // 否则，添加locked属性
        addValidField("locked");
    }
}