package com.usky.rule.vo;

import java.time.LocalDateTime;

public class ConditionExpression {
    String expression;
    Integer overMinutes;
    LocalDateTime lastMeetConditionTime;
    Integer numberOfReminders;

    public ConditionExpression() {
    }

    public String getExpression() {
        return this.expression;
    }

    public Integer getOverMinutes() {
        return this.overMinutes;
    }

    public LocalDateTime getLastMeetConditionTime() {
        return this.lastMeetConditionTime;
    }

    public Integer getNumberOfReminders() {
        return this.numberOfReminders;
    }

    public void setExpression(final String expression) {
        this.expression = expression;
    }

    public void setOverMinutes(final Integer overMinutes) {
        this.overMinutes = overMinutes;
    }

    public void setLastMeetConditionTime(final LocalDateTime lastMeetConditionTime) {
        this.lastMeetConditionTime = lastMeetConditionTime;
    }

    public void setNumberOfReminders(final Integer numberOfReminders) {
        this.numberOfReminders = numberOfReminders;
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof ConditionExpression)) {
            return false;
        } else {
            ConditionExpression other = (ConditionExpression)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$overMinutes = this.getOverMinutes();
                Object other$overMinutes = other.getOverMinutes();
                if (this$overMinutes == null) {
                    if (other$overMinutes != null) {
                        return false;
                    }
                } else if (!this$overMinutes.equals(other$overMinutes)) {
                    return false;
                }

                Object this$numberOfReminders = this.getNumberOfReminders();
                Object other$numberOfReminders = other.getNumberOfReminders();
                if (this$numberOfReminders == null) {
                    if (other$numberOfReminders != null) {
                        return false;
                    }
                } else if (!this$numberOfReminders.equals(other$numberOfReminders)) {
                    return false;
                }

                Object this$expression = this.getExpression();
                Object other$expression = other.getExpression();
                if (this$expression == null) {
                    if (other$expression != null) {
                        return false;
                    }
                } else if (!this$expression.equals(other$expression)) {
                    return false;
                }

                Object this$lastMeetConditionTime = this.getLastMeetConditionTime();
                Object other$lastMeetConditionTime = other.getLastMeetConditionTime();
                if (this$lastMeetConditionTime == null) {
                    if (other$lastMeetConditionTime != null) {
                        return false;
                    }
                } else if (!this$lastMeetConditionTime.equals(other$lastMeetConditionTime)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof ConditionExpression;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        Object $overMinutes = this.getOverMinutes();
        result = result * 59 + ($overMinutes == null ? 43 : $overMinutes.hashCode());
        Object $numberOfReminders = this.getNumberOfReminders();
        result = result * 59 + ($numberOfReminders == null ? 43 : $numberOfReminders.hashCode());
        Object $expression = this.getExpression();
        result = result * 59 + ($expression == null ? 43 : $expression.hashCode());
        Object $lastMeetConditionTime = this.getLastMeetConditionTime();
        result = result * 59 + ($lastMeetConditionTime == null ? 43 : $lastMeetConditionTime.hashCode());
        return result;
    }

    public String toString() {
        return "ConditionExpression(expression=" + this.getExpression() + ", overMinutes=" + this.getOverMinutes() + ", lastMeetConditionTime=" + this.getLastMeetConditionTime() + ", numberOfReminders=" + this.getNumberOfReminders() + ")";
    }
}
