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


import cn.vertxup.psi.domain.tables.interfaces.IPWh;
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 PWh implements VertxPojo, IPWh {

    private static final long serialVersionUID = 1L;

    private String key;
    private String name;
    private String code;
    private String type;
    private String status;
    private String managerId;
    private String managerName;
    private String managerPhone;
    private String managerMobile;
    private Boolean negative;
    private Boolean space;
    private String areaName;
    private String comment;
    private String distinctId;
    private String locationId;
    private String locationAddress;
    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 PWh() {}

    public PWh(IPWh value) {
        this.key = value.getKey();
        this.name = value.getName();
        this.code = value.getCode();
        this.type = value.getType();
        this.status = value.getStatus();
        this.managerId = value.getManagerId();
        this.managerName = value.getManagerName();
        this.managerPhone = value.getManagerPhone();
        this.managerMobile = value.getManagerMobile();
        this.negative = value.getNegative();
        this.space = value.getSpace();
        this.areaName = value.getAreaName();
        this.comment = value.getComment();
        this.distinctId = value.getDistinctId();
        this.locationId = value.getLocationId();
        this.locationAddress = value.getLocationAddress();
        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 PWh(
        String key,
        String name,
        String code,
        String type,
        String status,
        String managerId,
        String managerName,
        String managerPhone,
        String managerMobile,
        Boolean negative,
        Boolean space,
        String areaName,
        String comment,
        String distinctId,
        String locationId,
        String locationAddress,
        Boolean active,
        String sigma,
        String metadata,
        String language,
        LocalDateTime createdAt,
        String createdBy,
        LocalDateTime updatedAt,
        String updatedBy
    ) {
        this.key = key;
        this.name = name;
        this.code = code;
        this.type = type;
        this.status = status;
        this.managerId = managerId;
        this.managerName = managerName;
        this.managerPhone = managerPhone;
        this.managerMobile = managerMobile;
        this.negative = negative;
        this.space = space;
        this.areaName = areaName;
        this.comment = comment;
        this.distinctId = distinctId;
        this.locationId = locationId;
        this.locationAddress = locationAddress;
        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 PWh(io.vertx.core.json.JsonObject json) {
                this();
                fromJson(json);
        }

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

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

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

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

    /**
     * Getter for <code>DB_ETERNAL.P_WH.CODE</code>. 「code」- 仓库编号（系统可用）
     */
    @Override
    public String getCode() {
        return this.code;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.CODE</code>. 「code」- 仓库编号（系统可用）
     */
    @Override
    public PWh setCode(String code) {
        this.code = code;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.TYPE</code>. 「type」- 仓库类型
     */
    @Override
    public String getType() {
        return this.type;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.TYPE</code>. 「type」- 仓库类型
     */
    @Override
    public PWh setType(String type) {
        this.type = type;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.STATUS</code>. 「status」- 仓库状态
     */
    @Override
    public String getStatus() {
        return this.status;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.STATUS</code>. 「status」- 仓库状态
     */
    @Override
    public PWh setStatus(String status) {
        this.status = status;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.MANAGER_ID</code>. 「managerId」- 仓库管理员
     */
    @Override
    public String getManagerId() {
        return this.managerId;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.MANAGER_ID</code>. 「managerId」- 仓库管理员
     */
    @Override
    public PWh setManagerId(String managerId) {
        this.managerId = managerId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.MANAGER_NAME</code>. 「managerName」-
     * 管理员姓名
     */
    @Override
    public String getManagerName() {
        return this.managerName;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.MANAGER_NAME</code>. 「managerName」-
     * 管理员姓名
     */
    @Override
    public PWh setManagerName(String managerName) {
        this.managerName = managerName;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.MANAGER_PHONE</code>. 「managerPhone」-
     * 管理员电话
     */
    @Override
    public String getManagerPhone() {
        return this.managerPhone;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.MANAGER_PHONE</code>. 「managerPhone」-
     * 管理员电话
     */
    @Override
    public PWh setManagerPhone(String managerPhone) {
        this.managerPhone = managerPhone;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.MANAGER_MOBILE</code>. 「managerMobile」-
     * 管理员手机
     */
    @Override
    public String getManagerMobile() {
        return this.managerMobile;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.MANAGER_MOBILE</code>. 「managerMobile」-
     * 管理员手机
     */
    @Override
    public PWh setManagerMobile(String managerMobile) {
        this.managerMobile = managerMobile;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.NEGATIVE</code>. 「negative」- 允许负库存
     */
    @Override
    public Boolean getNegative() {
        return this.negative;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.NEGATIVE</code>. 「negative」- 允许负库存
     */
    @Override
    public PWh setNegative(Boolean negative) {
        this.negative = negative;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.SPACE</code>. 「space」- 仓位管理
     */
    @Override
    public Boolean getSpace() {
        return this.space;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.SPACE</code>. 「space」- 仓位管理
     */
    @Override
    public PWh setSpace(Boolean space) {
        this.space = space;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.AREA_NAME</code>. 「areaName」- 区域名称（手填）
     */
    @Override
    public String getAreaName() {
        return this.areaName;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.AREA_NAME</code>. 「areaName」- 区域名称（手填）
     */
    @Override
    public PWh setAreaName(String areaName) {
        this.areaName = areaName;
        return this;
    }

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

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

    /**
     * Getter for <code>DB_ETERNAL.P_WH.DISTINCT_ID</code>. 「distinctId」- 仓库行政区域
     */
    @Override
    public String getDistinctId() {
        return this.distinctId;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.DISTINCT_ID</code>. 「distinctId」- 仓库行政区域
     */
    @Override
    public PWh setDistinctId(String distinctId) {
        this.distinctId = distinctId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.LOCATION_ID</code>. 「locationId」-
     * 启用LBS时对应的Location主键
     */
    @Override
    public String getLocationId() {
        return this.locationId;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.LOCATION_ID</code>. 「locationId」-
     * 启用LBS时对应的Location主键
     */
    @Override
    public PWh setLocationId(String locationId) {
        this.locationId = locationId;
        return this;
    }

    /**
     * Getter for <code>DB_ETERNAL.P_WH.LOCATION_ADDRESS</code>.
     * 「locationAddress」- 仓库地址
     */
    @Override
    public String getLocationAddress() {
        return this.locationAddress;
    }

    /**
     * Setter for <code>DB_ETERNAL.P_WH.LOCATION_ADDRESS</code>.
     * 「locationAddress」- 仓库地址
     */
    @Override
    public PWh setLocationAddress(String locationAddress) {
        this.locationAddress = locationAddress;
        return this;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * Setter for <code>DB_ETERNAL.P_WH.UPDATED_BY</code>. 「updatedBy」- 更新人
     */
    @Override
    public PWh 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 PWh other = (PWh) 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.type == null) {
            if (other.type != null)
                return false;
        }
        else if (!this.type.equals(other.type))
            return false;
        if (this.status == null) {
            if (other.status != null)
                return false;
        }
        else if (!this.status.equals(other.status))
            return false;
        if (this.managerId == null) {
            if (other.managerId != null)
                return false;
        }
        else if (!this.managerId.equals(other.managerId))
            return false;
        if (this.managerName == null) {
            if (other.managerName != null)
                return false;
        }
        else if (!this.managerName.equals(other.managerName))
            return false;
        if (this.managerPhone == null) {
            if (other.managerPhone != null)
                return false;
        }
        else if (!this.managerPhone.equals(other.managerPhone))
            return false;
        if (this.managerMobile == null) {
            if (other.managerMobile != null)
                return false;
        }
        else if (!this.managerMobile.equals(other.managerMobile))
            return false;
        if (this.negative == null) {
            if (other.negative != null)
                return false;
        }
        else if (!this.negative.equals(other.negative))
            return false;
        if (this.space == null) {
            if (other.space != null)
                return false;
        }
        else if (!this.space.equals(other.space))
            return false;
        if (this.areaName == null) {
            if (other.areaName != null)
                return false;
        }
        else if (!this.areaName.equals(other.areaName))
            return false;
        if (this.comment == null) {
            if (other.comment != null)
                return false;
        }
        else if (!this.comment.equals(other.comment))
            return false;
        if (this.distinctId == null) {
            if (other.distinctId != null)
                return false;
        }
        else if (!this.distinctId.equals(other.distinctId))
            return false;
        if (this.locationId == null) {
            if (other.locationId != null)
                return false;
        }
        else if (!this.locationId.equals(other.locationId))
            return false;
        if (this.locationAddress == null) {
            if (other.locationAddress != null)
                return false;
        }
        else if (!this.locationAddress.equals(other.locationAddress))
            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.name == null) ? 0 : this.name.hashCode());
        result = prime * result + ((this.code == null) ? 0 : this.code.hashCode());
        result = prime * result + ((this.type == null) ? 0 : this.type.hashCode());
        result = prime * result + ((this.status == null) ? 0 : this.status.hashCode());
        result = prime * result + ((this.managerId == null) ? 0 : this.managerId.hashCode());
        result = prime * result + ((this.managerName == null) ? 0 : this.managerName.hashCode());
        result = prime * result + ((this.managerPhone == null) ? 0 : this.managerPhone.hashCode());
        result = prime * result + ((this.managerMobile == null) ? 0 : this.managerMobile.hashCode());
        result = prime * result + ((this.negative == null) ? 0 : this.negative.hashCode());
        result = prime * result + ((this.space == null) ? 0 : this.space.hashCode());
        result = prime * result + ((this.areaName == null) ? 0 : this.areaName.hashCode());
        result = prime * result + ((this.comment == null) ? 0 : this.comment.hashCode());
        result = prime * result + ((this.distinctId == null) ? 0 : this.distinctId.hashCode());
        result = prime * result + ((this.locationId == null) ? 0 : this.locationId.hashCode());
        result = prime * result + ((this.locationAddress == null) ? 0 : this.locationAddress.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("PWh (");

        sb.append(key);
        sb.append(", ").append(name);
        sb.append(", ").append(code);
        sb.append(", ").append(type);
        sb.append(", ").append(status);
        sb.append(", ").append(managerId);
        sb.append(", ").append(managerName);
        sb.append(", ").append(managerPhone);
        sb.append(", ").append(managerMobile);
        sb.append(", ").append(negative);
        sb.append(", ").append(space);
        sb.append(", ").append(areaName);
        sb.append(", ").append(comment);
        sb.append(", ").append(distinctId);
        sb.append(", ").append(locationId);
        sb.append(", ").append(locationAddress);
        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(IPWh from) {
        setKey(from.getKey());
        setName(from.getName());
        setCode(from.getCode());
        setType(from.getType());
        setStatus(from.getStatus());
        setManagerId(from.getManagerId());
        setManagerName(from.getManagerName());
        setManagerPhone(from.getManagerPhone());
        setManagerMobile(from.getManagerMobile());
        setNegative(from.getNegative());
        setSpace(from.getSpace());
        setAreaName(from.getAreaName());
        setComment(from.getComment());
        setDistinctId(from.getDistinctId());
        setLocationId(from.getLocationId());
        setLocationAddress(from.getLocationAddress());
        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 IPWh> E into(E into) {
        into.from(this);
        return into;
    }
}
