/*
 * This file is generated by jOOQ.
 */
package cn.vertxup.erp.domain.tables.pojos;


import cn.vertxup.erp.domain.tables.interfaces.IETeam;
import io.github.jklingsporn.vertx.jooq.shared.internal.VertxPojo;

import java.time.LocalDateTime;
/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class ETeam implements VertxPojo, IETeam {

    private static final long serialVersionUID = 1L;

    private String key;
    private String name;
    private String code;
    private String leaderId;
    private String leaderName;
    private String deptId;
    private String teamId;
    private String comment;
    private String bindId;
    private String bindComponent;
    private String bindConfig;
    private String metadata;
    private Boolean active;
    private String sigma;
    private String language;
    private LocalDateTime createdAt;
    private String createdBy;
    private LocalDateTime updatedAt;
    private String updatedBy;

    public ETeam() {}

    public ETeam(IETeam value) {
        this.key = value.getKey();
        this.name = value.getName();
        this.code = value.getCode();
        this.leaderId = value.getLeaderId();
        this.leaderName = value.getLeaderName();
        this.deptId = value.getDeptId();
        this.teamId = value.getTeamId();
        this.comment = value.getComment();
        this.bindId = value.getBindId();
        this.bindComponent = value.getBindComponent();
        this.bindConfig = value.getBindConfig();
        this.metadata = value.getMetadata();
        this.active = value.getActive();
        this.sigma = value.getSigma();
        this.language = value.getLanguage();
        this.createdAt = value.getCreatedAt();
        this.createdBy = value.getCreatedBy();
        this.updatedAt = value.getUpdatedAt();
        this.updatedBy = value.getUpdatedBy();
    }

    public ETeam(
        String key,
        String name,
        String code,
        String leaderId,
        String leaderName,
        String deptId,
        String teamId,
        String comment,
        String bindId,
        String bindComponent,
        String bindConfig,
        String metadata,
        Boolean active,
        String sigma,
        String language,
        LocalDateTime createdAt,
        String createdBy,
        LocalDateTime updatedAt,
        String updatedBy
    ) {
        this.key = key;
        this.name = name;
        this.code = code;
        this.leaderId = leaderId;
        this.leaderName = leaderName;
        this.deptId = deptId;
        this.teamId = teamId;
        this.comment = comment;
        this.bindId = bindId;
        this.bindComponent = bindComponent;
        this.bindConfig = bindConfig;
        this.metadata = metadata;
        this.active = active;
        this.sigma = sigma;
        this.language = language;
        this.createdAt = createdAt;
        this.createdBy = createdBy;
        this.updatedAt = updatedAt;
        this.updatedBy = updatedBy;
    }

        public ETeam(io.vertx.core.json.JsonObject json) {
                this();
                fromJson(json);
        }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.KEY</code>. 「key」- 组主键
     */
    @Override
    public String getKey() {
        return this.key;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.KEY</code>. 「key」- 组主键
     */
    @Override
    public ETeam setKey(String key) {
        this.key = key;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.NAME</code>. 「name」- 组名称
     */
    @Override
    public String getName() {
        return this.name;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.NAME</code>. 「name」- 组名称
     */
    @Override
    public ETeam setName(String name) {
        this.name = name;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.CODE</code>. 「code」- 组编号
     */
    @Override
    public String getCode() {
        return this.code;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.CODE</code>. 「code」- 组编号
     */
    @Override
    public ETeam setCode(String code) {
        this.code = code;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.LEADER_ID</code>. 「leaderId」- 组长
     */
    @Override
    public String getLeaderId() {
        return this.leaderId;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.LEADER_ID</code>. 「leaderId」- 组长
     */
    @Override
    public ETeam setLeaderId(String leaderId) {
        this.leaderId = leaderId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.LEADER_NAME</code>. 「leaderName」- 组长姓名
     */
    @Override
    public String getLeaderName() {
        return this.leaderName;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.LEADER_NAME</code>. 「leaderName」- 组长姓名
     */
    @Override
    public ETeam setLeaderName(String leaderName) {
        this.leaderName = leaderName;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.DEPT_ID</code>. 「deptId」- 所属部门
     */
    @Override
    public String getDeptId() {
        return this.deptId;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.DEPT_ID</code>. 「deptId」- 所属部门
     */
    @Override
    public ETeam setDeptId(String deptId) {
        this.deptId = deptId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.TEAM_ID</code>. 「teamId」- 父组ID
     */
    @Override
    public String getTeamId() {
        return this.teamId;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.TEAM_ID</code>. 「teamId」- 父组ID
     */
    @Override
    public ETeam setTeamId(String teamId) {
        this.teamId = teamId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.COMMENT</code>. 「comment」- 组备注
     */
    @Override
    public String getComment() {
        return this.comment;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.COMMENT</code>. 「comment」- 组备注
     */
    @Override
    public ETeam setComment(String comment) {
        this.comment = comment;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.BIND_ID</code>. 「bindId」-
     * 绑定用户组ID,安全专用处理
     */
    @Override
    public String getBindId() {
        return this.bindId;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.BIND_ID</code>. 「bindId」-
     * 绑定用户组ID,安全专用处理
     */
    @Override
    public ETeam setBindId(String bindId) {
        this.bindId = bindId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.BIND_COMPONENT</code>.
     * 「bindComponent」- 绑定扩展组件
     */
    @Override
    public String getBindComponent() {
        return this.bindComponent;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.BIND_COMPONENT</code>.
     * 「bindComponent」- 绑定扩展组件
     */
    @Override
    public ETeam setBindComponent(String bindComponent) {
        this.bindComponent = bindComponent;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.BIND_CONFIG</code>. 「bindConfig」-
     * 绑定JSON详细配置
     */
    @Override
    public String getBindConfig() {
        return this.bindConfig;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.BIND_CONFIG</code>. 「bindConfig」-
     * 绑定JSON详细配置
     */
    @Override
    public ETeam setBindConfig(String bindConfig) {
        this.bindConfig = bindConfig;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public String getMetadata() {
        return this.metadata;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.METADATA</code>. 「metadata」- 附加配置
     */
    @Override
    public ETeam setMetadata(String metadata) {
        this.metadata = metadata;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public Boolean getActive() {
        return this.active;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.ACTIVE</code>. 「active」- 是否启用
     */
    @Override
    public ETeam setActive(Boolean active) {
        this.active = active;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public String getSigma() {
        return this.sigma;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.SIGMA</code>. 「sigma」- 统一标识
     */
    @Override
    public ETeam setSigma(String sigma) {
        this.sigma = sigma;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public String getLanguage() {
        return this.language;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.LANGUAGE</code>. 「language」- 使用的语言
     */
    @Override
    public ETeam setLanguage(String language) {
        this.language = language;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.CREATED_AT</code>. 「createdAt」- 创建时间
     */
    @Override
    public LocalDateTime getCreatedAt() {
        return this.createdAt;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.CREATED_AT</code>. 「createdAt」- 创建时间
     */
    @Override
    public ETeam setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.CREATED_BY</code>. 「createdBy」- 创建人
     */
    @Override
    public String getCreatedBy() {
        return this.createdBy;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.CREATED_BY</code>. 「createdBy」- 创建人
     */
    @Override
    public ETeam setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.UPDATED_AT</code>. 「updatedAt」- 更新时间
     */
    @Override
    public LocalDateTime getUpdatedAt() {
        return this.updatedAt;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.UPDATED_AT</code>. 「updatedAt」- 更新时间
     */
    @Override
    public ETeam setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.E_TEAM.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public String getUpdatedBy() {
        return this.updatedBy;
    }

    /**
     * Setter for <code>DB_ETERNAL.E_TEAM.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public ETeam setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
        return this;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        final ETeam other = (ETeam) obj;
        if (this.key == null) {
            if (other.key != null)
                return false;
        }
        else if (!this.key.equals(other.key))
            return false;
        if (this.name == null) {
            if (other.name != null)
                return false;
        }
        else if (!this.name.equals(other.name))
            return false;
        if (this.code == null) {
            if (other.code != null)
                return false;
        }
        else if (!this.code.equals(other.code))
            return false;
        if (this.leaderId == null) {
            if (other.leaderId != null)
                return false;
        }
        else if (!this.leaderId.equals(other.leaderId))
            return false;
        if (this.leaderName == null) {
            if (other.leaderName != null)
                return false;
        }
        else if (!this.leaderName.equals(other.leaderName))
            return false;
        if (this.deptId == null) {
            if (other.deptId != null)
                return false;
        }
        else if (!this.deptId.equals(other.deptId))
            return false;
        if (this.teamId == null) {
            if (other.teamId != null)
                return false;
        }
        else if (!this.teamId.equals(other.teamId))
            return false;
        if (this.comment == null) {
            if (other.comment != null)
                return false;
        }
        else if (!this.comment.equals(other.comment))
            return false;
        if (this.bindId == null) {
            if (other.bindId != null)
                return false;
        }
        else if (!this.bindId.equals(other.bindId))
            return false;
        if (this.bindComponent == null) {
            if (other.bindComponent != null)
                return false;
        }
        else if (!this.bindComponent.equals(other.bindComponent))
            return false;
        if (this.bindConfig == null) {
            if (other.bindConfig != null)
                return false;
        }
        else if (!this.bindConfig.equals(other.bindConfig))
            return false;
        if (this.metadata == null) {
            if (other.metadata != null)
                return false;
        }
        else if (!this.metadata.equals(other.metadata))
            return false;
        if (this.active == null) {
            if (other.active != null)
                return false;
        }
        else if (!this.active.equals(other.active))
            return false;
        if (this.sigma == null) {
            if (other.sigma != null)
                return false;
        }
        else if (!this.sigma.equals(other.sigma))
            return false;
        if (this.language == null) {
            if (other.language != null)
                return false;
        }
        else if (!this.language.equals(other.language))
            return false;
        if (this.createdAt == null) {
            if (other.createdAt != null)
                return false;
        }
        else if (!this.createdAt.equals(other.createdAt))
            return false;
        if (this.createdBy == null) {
            if (other.createdBy != null)
                return false;
        }
        else if (!this.createdBy.equals(other.createdBy))
            return false;
        if (this.updatedAt == null) {
            if (other.updatedAt != null)
                return false;
        }
        else if (!this.updatedAt.equals(other.updatedAt))
            return false;
        if (this.updatedBy == null) {
            if (other.updatedBy != null)
                return false;
        }
        else if (!this.updatedBy.equals(other.updatedBy))
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((this.key == null) ? 0 : this.key.hashCode());
        result = prime * result + ((this.name == null) ? 0 : this.name.hashCode());
        result = prime * result + ((this.code == null) ? 0 : this.code.hashCode());
        result = prime * result + ((this.leaderId == null) ? 0 : this.leaderId.hashCode());
        result = prime * result + ((this.leaderName == null) ? 0 : this.leaderName.hashCode());
        result = prime * result + ((this.deptId == null) ? 0 : this.deptId.hashCode());
        result = prime * result + ((this.teamId == null) ? 0 : this.teamId.hashCode());
        result = prime * result + ((this.comment == null) ? 0 : this.comment.hashCode());
        result = prime * result + ((this.bindId == null) ? 0 : this.bindId.hashCode());
        result = prime * result + ((this.bindComponent == null) ? 0 : this.bindComponent.hashCode());
        result = prime * result + ((this.bindConfig == null) ? 0 : this.bindConfig.hashCode());
        result = prime * result + ((this.metadata == null) ? 0 : this.metadata.hashCode());
        result = prime * result + ((this.active == null) ? 0 : this.active.hashCode());
        result = prime * result + ((this.sigma == null) ? 0 : this.sigma.hashCode());
        result = prime * result + ((this.language == null) ? 0 : this.language.hashCode());
        result = prime * result + ((this.createdAt == null) ? 0 : this.createdAt.hashCode());
        result = prime * result + ((this.createdBy == null) ? 0 : this.createdBy.hashCode());
        result = prime * result + ((this.updatedAt == null) ? 0 : this.updatedAt.hashCode());
        result = prime * result + ((this.updatedBy == null) ? 0 : this.updatedBy.hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("ETeam (");

        sb.append(key);
        sb.append(", ").append(name);
        sb.append(", ").append(code);
        sb.append(", ").append(leaderId);
        sb.append(", ").append(leaderName);
        sb.append(", ").append(deptId);
        sb.append(", ").append(teamId);
        sb.append(", ").append(comment);
        sb.append(", ").append(bindId);
        sb.append(", ").append(bindComponent);
        sb.append(", ").append(bindConfig);
        sb.append(", ").append(metadata);
        sb.append(", ").append(active);
        sb.append(", ").append(sigma);
        sb.append(", ").append(language);
        sb.append(", ").append(createdAt);
        sb.append(", ").append(createdBy);
        sb.append(", ").append(updatedAt);
        sb.append(", ").append(updatedBy);

        sb.append(")");
        return sb.toString();
    }

    // -------------------------------------------------------------------------
    // FROM and INTO
    // -------------------------------------------------------------------------

    @Override
    public void from(IETeam from) {
        setKey(from.getKey());
        setName(from.getName());
        setCode(from.getCode());
        setLeaderId(from.getLeaderId());
        setLeaderName(from.getLeaderName());
        setDeptId(from.getDeptId());
        setTeamId(from.getTeamId());
        setComment(from.getComment());
        setBindId(from.getBindId());
        setBindComponent(from.getBindComponent());
        setBindConfig(from.getBindConfig());
        setMetadata(from.getMetadata());
        setActive(from.getActive());
        setSigma(from.getSigma());
        setLanguage(from.getLanguage());
        setCreatedAt(from.getCreatedAt());
        setCreatedBy(from.getCreatedBy());
        setUpdatedAt(from.getUpdatedAt());
        setUpdatedBy(from.getUpdatedBy());
    }

    @Override
    public <E extends IETeam> E into(E into) {
        into.from(this);
        return into;
    }
}
