package com.bailuntec.domain.entity;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class DcBasePurchaseDetails {
    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.id
     *
     * @mbg.generated
     */
    private Integer id;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.purchase_id
     *
     * @mbg.generated
     */
    private String purchaseId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.status
     *
     * @mbg.generated
     */
    private Integer status;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.purchase_category_name
     *
     * @mbg.generated
     */
    private String purchaseCategoryName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.deliver_id
     *
     * @mbg.generated
     */
    private Integer deliverId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.deliver_name
     *
     * @mbg.generated
     */
    private String deliverName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.buyer_name
     *
     * @mbg.generated
     */
    private String buyerName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.warehouse_from_code
     *
     * @mbg.generated
     */
    private String warehouseFromCode;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.warehouse_from_name
     *
     * @mbg.generated
     */
    private String warehouseFromName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.warehouse_into_code
     *
     * @mbg.generated
     */
    private String warehouseIntoCode;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.warehouse_into_name
     *
     * @mbg.generated
     */
    private String warehouseIntoName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.bailun_sku
     *
     * @mbg.generated
     */
    private String bailunSku;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_purchase
     *
     * @mbg.generated
     */
    private Integer quantityPurchase;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.unit_price
     *
     * @mbg.generated
     */
    private BigDecimal unitPrice;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.amount_paid
     *
     * @mbg.generated
     */
    private BigDecimal amountPaid;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.currency_code
     *
     * @mbg.generated
     */
    private String currencyCode;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.currency_name
     *
     * @mbg.generated
     */
    private String currencyName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_return
     *
     * @mbg.generated
     */
    private Integer quantityReturn;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_inbound
     *
     * @mbg.generated
     */
    private Integer quantityInbound;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_deliver
     *
     * @mbg.generated
     */
    private Integer quantityDeliver;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_not_deliver
     *
     * @mbg.generated
     */
    private Integer quantityNotDeliver;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_arrival
     *
     * @mbg.generated
     */
    private Integer quantityArrival;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_not_arrival
     *
     * @mbg.generated
     */
    private Integer quantityNotArrival;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_inspect
     *
     * @mbg.generated
     */
    private Integer quantityInspect;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_qualified_inspect
     *
     * @mbg.generated
     */
    private Integer quantityQualifiedInspect;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_unqualified_inspect
     *
     * @mbg.generated
     */
    private Integer quantityUnqualifiedInspect;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_wait_transfer
     *
     * @mbg.generated
     */
    private Integer quantityWaitTransfer;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_exchange
     *
     * @mbg.generated
     */
    private Integer quantityExchange;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.quantity_lose_inbound
     *
     * @mbg.generated
     */
    private Integer quantityLoseInbound;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.create_time
     *
     * @mbg.generated
     */
    private LocalDateTime createTime;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.update_time
     *
     * @mbg.generated
     */
    private LocalDateTime updateTime;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.gmt_create
     *
     * @mbg.generated
     */
    private LocalDateTime gmtCreate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_base_purchase_details.gmt_modified
     *
     * @mbg.generated
     */
    private LocalDateTime gmtModified;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_purchase_details
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", purchaseId=").append(purchaseId);
        sb.append(", status=").append(status);
        sb.append(", purchaseCategoryName=").append(purchaseCategoryName);
        sb.append(", deliverId=").append(deliverId);
        sb.append(", deliverName=").append(deliverName);
        sb.append(", buyerName=").append(buyerName);
        sb.append(", warehouseFromCode=").append(warehouseFromCode);
        sb.append(", warehouseFromName=").append(warehouseFromName);
        sb.append(", warehouseIntoCode=").append(warehouseIntoCode);
        sb.append(", warehouseIntoName=").append(warehouseIntoName);
        sb.append(", bailunSku=").append(bailunSku);
        sb.append(", quantityPurchase=").append(quantityPurchase);
        sb.append(", unitPrice=").append(unitPrice);
        sb.append(", amountPaid=").append(amountPaid);
        sb.append(", currencyCode=").append(currencyCode);
        sb.append(", currencyName=").append(currencyName);
        sb.append(", quantityReturn=").append(quantityReturn);
        sb.append(", quantityInbound=").append(quantityInbound);
        sb.append(", quantityDeliver=").append(quantityDeliver);
        sb.append(", quantityNotDeliver=").append(quantityNotDeliver);
        sb.append(", quantityArrival=").append(quantityArrival);
        sb.append(", quantityNotArrival=").append(quantityNotArrival);
        sb.append(", quantityInspect=").append(quantityInspect);
        sb.append(", quantityQualifiedInspect=").append(quantityQualifiedInspect);
        sb.append(", quantityUnqualifiedInspect=").append(quantityUnqualifiedInspect);
        sb.append(", quantityWaitTransfer=").append(quantityWaitTransfer);
        sb.append(", quantityExchange=").append(quantityExchange);
        sb.append(", quantityLoseInbound=").append(quantityLoseInbound);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append("]");
        return sb.toString();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_purchase_details
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        DcBasePurchaseDetails other = (DcBasePurchaseDetails) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getPurchaseId() == null ? other.getPurchaseId() == null : this.getPurchaseId().equals(other.getPurchaseId()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getPurchaseCategoryName() == null ? other.getPurchaseCategoryName() == null : this.getPurchaseCategoryName().equals(other.getPurchaseCategoryName()))
            && (this.getDeliverId() == null ? other.getDeliverId() == null : this.getDeliverId().equals(other.getDeliverId()))
            && (this.getDeliverName() == null ? other.getDeliverName() == null : this.getDeliverName().equals(other.getDeliverName()))
            && (this.getBuyerName() == null ? other.getBuyerName() == null : this.getBuyerName().equals(other.getBuyerName()))
            && (this.getWarehouseFromCode() == null ? other.getWarehouseFromCode() == null : this.getWarehouseFromCode().equals(other.getWarehouseFromCode()))
            && (this.getWarehouseFromName() == null ? other.getWarehouseFromName() == null : this.getWarehouseFromName().equals(other.getWarehouseFromName()))
            && (this.getWarehouseIntoCode() == null ? other.getWarehouseIntoCode() == null : this.getWarehouseIntoCode().equals(other.getWarehouseIntoCode()))
            && (this.getWarehouseIntoName() == null ? other.getWarehouseIntoName() == null : this.getWarehouseIntoName().equals(other.getWarehouseIntoName()))
            && (this.getBailunSku() == null ? other.getBailunSku() == null : this.getBailunSku().equals(other.getBailunSku()))
            && (this.getQuantityPurchase() == null ? other.getQuantityPurchase() == null : this.getQuantityPurchase().equals(other.getQuantityPurchase()))
            && (this.getUnitPrice() == null ? other.getUnitPrice() == null : this.getUnitPrice().equals(other.getUnitPrice()))
            && (this.getAmountPaid() == null ? other.getAmountPaid() == null : this.getAmountPaid().equals(other.getAmountPaid()))
            && (this.getCurrencyCode() == null ? other.getCurrencyCode() == null : this.getCurrencyCode().equals(other.getCurrencyCode()))
            && (this.getCurrencyName() == null ? other.getCurrencyName() == null : this.getCurrencyName().equals(other.getCurrencyName()))
            && (this.getQuantityReturn() == null ? other.getQuantityReturn() == null : this.getQuantityReturn().equals(other.getQuantityReturn()))
            && (this.getQuantityInbound() == null ? other.getQuantityInbound() == null : this.getQuantityInbound().equals(other.getQuantityInbound()))
            && (this.getQuantityDeliver() == null ? other.getQuantityDeliver() == null : this.getQuantityDeliver().equals(other.getQuantityDeliver()))
            && (this.getQuantityNotDeliver() == null ? other.getQuantityNotDeliver() == null : this.getQuantityNotDeliver().equals(other.getQuantityNotDeliver()))
            && (this.getQuantityArrival() == null ? other.getQuantityArrival() == null : this.getQuantityArrival().equals(other.getQuantityArrival()))
            && (this.getQuantityNotArrival() == null ? other.getQuantityNotArrival() == null : this.getQuantityNotArrival().equals(other.getQuantityNotArrival()))
            && (this.getQuantityInspect() == null ? other.getQuantityInspect() == null : this.getQuantityInspect().equals(other.getQuantityInspect()))
            && (this.getQuantityQualifiedInspect() == null ? other.getQuantityQualifiedInspect() == null : this.getQuantityQualifiedInspect().equals(other.getQuantityQualifiedInspect()))
            && (this.getQuantityUnqualifiedInspect() == null ? other.getQuantityUnqualifiedInspect() == null : this.getQuantityUnqualifiedInspect().equals(other.getQuantityUnqualifiedInspect()))
            && (this.getQuantityWaitTransfer() == null ? other.getQuantityWaitTransfer() == null : this.getQuantityWaitTransfer().equals(other.getQuantityWaitTransfer()))
            && (this.getQuantityExchange() == null ? other.getQuantityExchange() == null : this.getQuantityExchange().equals(other.getQuantityExchange()))
            && (this.getQuantityLoseInbound() == null ? other.getQuantityLoseInbound() == null : this.getQuantityLoseInbound().equals(other.getQuantityLoseInbound()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
            && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()));
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_base_purchase_details
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getPurchaseId() == null) ? 0 : getPurchaseId().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getPurchaseCategoryName() == null) ? 0 : getPurchaseCategoryName().hashCode());
        result = prime * result + ((getDeliverId() == null) ? 0 : getDeliverId().hashCode());
        result = prime * result + ((getDeliverName() == null) ? 0 : getDeliverName().hashCode());
        result = prime * result + ((getBuyerName() == null) ? 0 : getBuyerName().hashCode());
        result = prime * result + ((getWarehouseFromCode() == null) ? 0 : getWarehouseFromCode().hashCode());
        result = prime * result + ((getWarehouseFromName() == null) ? 0 : getWarehouseFromName().hashCode());
        result = prime * result + ((getWarehouseIntoCode() == null) ? 0 : getWarehouseIntoCode().hashCode());
        result = prime * result + ((getWarehouseIntoName() == null) ? 0 : getWarehouseIntoName().hashCode());
        result = prime * result + ((getBailunSku() == null) ? 0 : getBailunSku().hashCode());
        result = prime * result + ((getQuantityPurchase() == null) ? 0 : getQuantityPurchase().hashCode());
        result = prime * result + ((getUnitPrice() == null) ? 0 : getUnitPrice().hashCode());
        result = prime * result + ((getAmountPaid() == null) ? 0 : getAmountPaid().hashCode());
        result = prime * result + ((getCurrencyCode() == null) ? 0 : getCurrencyCode().hashCode());
        result = prime * result + ((getCurrencyName() == null) ? 0 : getCurrencyName().hashCode());
        result = prime * result + ((getQuantityReturn() == null) ? 0 : getQuantityReturn().hashCode());
        result = prime * result + ((getQuantityInbound() == null) ? 0 : getQuantityInbound().hashCode());
        result = prime * result + ((getQuantityDeliver() == null) ? 0 : getQuantityDeliver().hashCode());
        result = prime * result + ((getQuantityNotDeliver() == null) ? 0 : getQuantityNotDeliver().hashCode());
        result = prime * result + ((getQuantityArrival() == null) ? 0 : getQuantityArrival().hashCode());
        result = prime * result + ((getQuantityNotArrival() == null) ? 0 : getQuantityNotArrival().hashCode());
        result = prime * result + ((getQuantityInspect() == null) ? 0 : getQuantityInspect().hashCode());
        result = prime * result + ((getQuantityQualifiedInspect() == null) ? 0 : getQuantityQualifiedInspect().hashCode());
        result = prime * result + ((getQuantityUnqualifiedInspect() == null) ? 0 : getQuantityUnqualifiedInspect().hashCode());
        result = prime * result + ((getQuantityWaitTransfer() == null) ? 0 : getQuantityWaitTransfer().hashCode());
        result = prime * result + ((getQuantityExchange() == null) ? 0 : getQuantityExchange().hashCode());
        result = prime * result + ((getQuantityLoseInbound() == null) ? 0 : getQuantityLoseInbound().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        return result;
    }
}