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


import cn.vertxup.tpl.domain.tables.interfaces.IMyFavor;
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 MyFavor implements VertxPojo, IMyFavor {

    private static final long serialVersionUID = 1L;

    private String key;
    private String owner;
    private String ownerType;
    private Long uiSort;
    private String type;
    private String position;
    private String uriKey;
    private String uriFull;
    private String uri;
    private String uriParam;
    private Boolean active;
    private String sigma;
    private String metadata;
    private String language;
    private LocalDateTime createdAt;
    private String createdBy;
    private LocalDateTime updatedAt;
    private String updatedBy;

    public MyFavor() {}

    public MyFavor(IMyFavor value) {
        this.key = value.getKey();
        this.owner = value.getOwner();
        this.ownerType = value.getOwnerType();
        this.uiSort = value.getUiSort();
        this.type = value.getType();
        this.position = value.getPosition();
        this.uriKey = value.getUriKey();
        this.uriFull = value.getUriFull();
        this.uri = value.getUri();
        this.uriParam = value.getUriParam();
        this.active = value.getActive();
        this.sigma = value.getSigma();
        this.metadata = value.getMetadata();
        this.language = value.getLanguage();
        this.createdAt = value.getCreatedAt();
        this.createdBy = value.getCreatedBy();
        this.updatedAt = value.getUpdatedAt();
        this.updatedBy = value.getUpdatedBy();
    }

    public MyFavor(
        String key,
        String owner,
        String ownerType,
        Long uiSort,
        String type,
        String position,
        String uriKey,
        String uriFull,
        String uri,
        String uriParam,
        Boolean active,
        String sigma,
        String metadata,
        String language,
        LocalDateTime createdAt,
        String createdBy,
        LocalDateTime updatedAt,
        String updatedBy
    ) {
        this.key = key;
        this.owner = owner;
        this.ownerType = ownerType;
        this.uiSort = uiSort;
        this.type = type;
        this.position = position;
        this.uriKey = uriKey;
        this.uriFull = uriFull;
        this.uri = uri;
        this.uriParam = uriParam;
        this.active = active;
        this.sigma = sigma;
        this.metadata = metadata;
        this.language = language;
        this.createdAt = createdAt;
        this.createdBy = createdBy;
        this.updatedAt = updatedAt;
        this.updatedBy = updatedBy;
    }

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

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

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.KEY</code>. 「key」- 个人应用主键
     */
    @Override
    public MyFavor setKey(String key) {
        this.key = key;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.OWNER</code>. 「owner」- 拥有者ID，我的 /
     * 角色级
     */
    @Override
    public String getOwner() {
        return this.owner;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.OWNER</code>. 「owner」- 拥有者ID，我的 /
     * 角色级
     */
    @Override
    public MyFavor setOwner(String owner) {
        this.owner = owner;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.OWNER_TYPE</code>. 「ownerType」- ROLE
     * 角色，USER 用户
     */
    @Override
    public String getOwnerType() {
        return this.ownerType;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.OWNER_TYPE</code>. 「ownerType」- ROLE
     * 角色，USER 用户
     */
    @Override
    public MyFavor setOwnerType(String ownerType) {
        this.ownerType = ownerType;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.UI_SORT</code>. 「uiSort」- 模块排序
     */
    @Override
    public Long getUiSort() {
        return this.uiSort;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.UI_SORT</code>. 「uiSort」- 模块排序
     */
    @Override
    public MyFavor setUiSort(Long uiSort) {
        this.uiSort = uiSort;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.TYPE</code>. 「type」- 类型（默认全站）
     */
    @Override
    public String getType() {
        return this.type;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.TYPE</code>. 「type」- 类型（默认全站）
     */
    @Override
    public MyFavor setType(String type) {
        this.type = type;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.POSITION</code>. 「position」-
     * 位置（默认左侧）
     */
    @Override
    public String getPosition() {
        return this.position;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.POSITION</code>. 「position」-
     * 位置（默认左侧）
     */
    @Override
    public MyFavor setPosition(String position) {
        this.position = position;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.URI_KEY</code>. 「uriKey」- URI
     * KEY（加密长度）
     */
    @Override
    public String getUriKey() {
        return this.uriKey;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.URI_KEY</code>. 「uriKey」- URI
     * KEY（加密长度）
     */
    @Override
    public MyFavor setUriKey(String uriKey) {
        this.uriKey = uriKey;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.URI_FULL</code>. 「uriFull」-
     * 收藏完整链接地址（带参数部分）
     */
    @Override
    public String getUriFull() {
        return this.uriFull;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.URI_FULL</code>. 「uriFull」-
     * 收藏完整链接地址（带参数部分）
     */
    @Override
    public MyFavor setUriFull(String uriFull) {
        this.uriFull = uriFull;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.URI</code>. 「uri」- 收藏地址
     */
    @Override
    public String getUri() {
        return this.uri;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.URI</code>. 「uri」- 收藏地址
     */
    @Override
    public MyFavor setUri(String uri) {
        this.uri = uri;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.MY_FAVOR.URI_PARAM</code>. 「uriParam」-
     * 该收藏参数（收藏夹专用）
     */
    @Override
    public String getUriParam() {
        return this.uriParam;
    }

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.URI_PARAM</code>. 「uriParam」-
     * 该收藏参数（收藏夹专用）
     */
    @Override
    public MyFavor setUriParam(String uriParam) {
        this.uriParam = uriParam;
        return this;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Setter for <code>DB_ETERNAL.MY_FAVOR.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public MyFavor 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 MyFavor other = (MyFavor) obj;
        if (this.key == null) {
            if (other.key != null)
                return false;
        }
        else if (!this.key.equals(other.key))
            return false;
        if (this.owner == null) {
            if (other.owner != null)
                return false;
        }
        else if (!this.owner.equals(other.owner))
            return false;
        if (this.ownerType == null) {
            if (other.ownerType != null)
                return false;
        }
        else if (!this.ownerType.equals(other.ownerType))
            return false;
        if (this.uiSort == null) {
            if (other.uiSort != null)
                return false;
        }
        else if (!this.uiSort.equals(other.uiSort))
            return false;
        if (this.type == null) {
            if (other.type != null)
                return false;
        }
        else if (!this.type.equals(other.type))
            return false;
        if (this.position == null) {
            if (other.position != null)
                return false;
        }
        else if (!this.position.equals(other.position))
            return false;
        if (this.uriKey == null) {
            if (other.uriKey != null)
                return false;
        }
        else if (!this.uriKey.equals(other.uriKey))
            return false;
        if (this.uriFull == null) {
            if (other.uriFull != null)
                return false;
        }
        else if (!this.uriFull.equals(other.uriFull))
            return false;
        if (this.uri == null) {
            if (other.uri != null)
                return false;
        }
        else if (!this.uri.equals(other.uri))
            return false;
        if (this.uriParam == null) {
            if (other.uriParam != null)
                return false;
        }
        else if (!this.uriParam.equals(other.uriParam))
            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.metadata == null) {
            if (other.metadata != null)
                return false;
        }
        else if (!this.metadata.equals(other.metadata))
            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.owner == null) ? 0 : this.owner.hashCode());
        result = prime * result + ((this.ownerType == null) ? 0 : this.ownerType.hashCode());
        result = prime * result + ((this.uiSort == null) ? 0 : this.uiSort.hashCode());
        result = prime * result + ((this.type == null) ? 0 : this.type.hashCode());
        result = prime * result + ((this.position == null) ? 0 : this.position.hashCode());
        result = prime * result + ((this.uriKey == null) ? 0 : this.uriKey.hashCode());
        result = prime * result + ((this.uriFull == null) ? 0 : this.uriFull.hashCode());
        result = prime * result + ((this.uri == null) ? 0 : this.uri.hashCode());
        result = prime * result + ((this.uriParam == null) ? 0 : this.uriParam.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.metadata == null) ? 0 : this.metadata.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("MyFavor (");

        sb.append(key);
        sb.append(", ").append(owner);
        sb.append(", ").append(ownerType);
        sb.append(", ").append(uiSort);
        sb.append(", ").append(type);
        sb.append(", ").append(position);
        sb.append(", ").append(uriKey);
        sb.append(", ").append(uriFull);
        sb.append(", ").append(uri);
        sb.append(", ").append(uriParam);
        sb.append(", ").append(active);
        sb.append(", ").append(sigma);
        sb.append(", ").append(metadata);
        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(IMyFavor from) {
        setKey(from.getKey());
        setOwner(from.getOwner());
        setOwnerType(from.getOwnerType());
        setUiSort(from.getUiSort());
        setType(from.getType());
        setPosition(from.getPosition());
        setUriKey(from.getUriKey());
        setUriFull(from.getUriFull());
        setUri(from.getUri());
        setUriParam(from.getUriParam());
        setActive(from.getActive());
        setSigma(from.getSigma());
        setMetadata(from.getMetadata());
        setLanguage(from.getLanguage());
        setCreatedAt(from.getCreatedAt());
        setCreatedBy(from.getCreatedBy());
        setUpdatedAt(from.getUpdatedAt());
        setUpdatedBy(from.getUpdatedBy());
    }

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