package com.bailuntec.domain.entity;

import lombok.Data;

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

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

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

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

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

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.warehouse_code
     *
     * @mbg.generated
     */
    private String warehouseCode;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.warehouse_name
     *
     * @mbg.generated
     */
    private String warehouseName;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.start_time
     *
     * @mbg.generated
     */
    private LocalDate startTime;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.end_time
     *
     * @mbg.generated
     */
    private LocalDate endTime;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.bl_operator
     *
     * @mbg.generated
     */
    private String blOperator;

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

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.has_solve
     *
     * @mbg.generated
     */
    private Boolean hasSolve;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.forecast_solve_time
     *
     * @mbg.generated
     */
    private LocalDateTime forecastSolveTime;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.has_confirm
     *
     * @mbg.generated
     */
    private Boolean hasConfirm;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.confirm_time
     *
     * @mbg.generated
     */
    private LocalDateTime confirmTime;

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

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_auto_forecast_fluctuation.avg_sales_three
     *
     * @mbg.generated
     */
    private BigDecimal avgSalesThree;

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

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_forecast_fluctuation
     *
     * @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(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", bailunSku=").append(bailunSku);
        sb.append(", warehouseCode=").append(warehouseCode);
        sb.append(", warehouseName=").append(warehouseName);
        sb.append(", startTime=").append(startTime);
        sb.append(", endTime=").append(endTime);
        sb.append(", blOperator=").append(blOperator);
        sb.append(", remark=").append(remark);
        sb.append(", hasSolve=").append(hasSolve);
        sb.append(", forecastSolveTime=").append(forecastSolveTime);
        sb.append(", hasConfirm=").append(hasConfirm);
        sb.append(", confirmTime=").append(confirmTime);
        sb.append(", type=").append(type);
        sb.append(", avgSalesThree=").append(avgSalesThree);
        sb.append(", quantity=").append(quantity);
        sb.append("]");
        return sb.toString();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_forecast_fluctuation
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        DcAutoForecastFluctuation other = (DcAutoForecastFluctuation) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
                && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
                && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()))
                && (this.getBailunSku() == null ? other.getBailunSku() == null : this.getBailunSku().equals(other.getBailunSku()))
                && (this.getWarehouseCode() == null ? other.getWarehouseCode() == null : this.getWarehouseCode().equals(other.getWarehouseCode()))
                && (this.getWarehouseName() == null ? other.getWarehouseName() == null : this.getWarehouseName().equals(other.getWarehouseName()))
                && (this.getStartTime() == null ? other.getStartTime() == null : this.getStartTime().equals(other.getStartTime()))
                && (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime()))
                && (this.getBlOperator() == null ? other.getBlOperator() == null : this.getBlOperator().equals(other.getBlOperator()))
                && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
                && (this.getHasSolve() == null ? other.getHasSolve() == null : this.getHasSolve().equals(other.getHasSolve()))
                && (this.getForecastSolveTime() == null ? other.getForecastSolveTime() == null : this.getForecastSolveTime().equals(other.getForecastSolveTime()))
                && (this.getHasConfirm() == null ? other.getHasConfirm() == null : this.getHasConfirm().equals(other.getHasConfirm()))
                && (this.getConfirmTime() == null ? other.getConfirmTime() == null : this.getConfirmTime().equals(other.getConfirmTime()))
                && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
                && (this.getAvgSalesThree() == null ? other.getAvgSalesThree() == null : this.getAvgSalesThree().equals(other.getAvgSalesThree()))
                && (this.getQuantity() == null ? other.getQuantity() == null : this.getQuantity().equals(other.getQuantity()));
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_auto_forecast_fluctuation
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        result = prime * result + ((getBailunSku() == null) ? 0 : getBailunSku().hashCode());
        result = prime * result + ((getWarehouseCode() == null) ? 0 : getWarehouseCode().hashCode());
        result = prime * result + ((getWarehouseName() == null) ? 0 : getWarehouseName().hashCode());
        result = prime * result + ((getStartTime() == null) ? 0 : getStartTime().hashCode());
        result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        result = prime * result + ((getBlOperator() == null) ? 0 : getBlOperator().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getHasSolve() == null) ? 0 : getHasSolve().hashCode());
        result = prime * result + ((getForecastSolveTime() == null) ? 0 : getForecastSolveTime().hashCode());
        result = prime * result + ((getHasConfirm() == null) ? 0 : getHasConfirm().hashCode());
        result = prime * result + ((getConfirmTime() == null) ? 0 : getConfirmTime().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        result = prime * result + ((getAvgSalesThree() == null) ? 0 : getAvgSalesThree().hashCode());
        result = prime * result + ((getQuantity() == null) ? 0 : getQuantity().hashCode());
        return result;
    }
}
