package com.goafanti.common.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class JtVoucherExample {
    /**
	 * This field was generated by MyBatis Generator. This field corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	protected String orderByClause;
	/**
	 * This field was generated by MyBatis Generator. This field corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	protected boolean distinct;
	/**
	 * This field was generated by MyBatis Generator. This field corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	protected List<Criteria> oredCriteria;

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public JtVoucherExample() {
		oredCriteria = new ArrayList<Criteria>();
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public String getOrderByClause() {
		return orderByClause;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public void setDistinct(boolean distinct) {
		this.distinct = distinct;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public boolean isDistinct() {
		return distinct;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public List<Criteria> getOredCriteria() {
		return oredCriteria;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public void or(Criteria criteria) {
		oredCriteria.add(criteria);
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public Criteria or() {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public Criteria createCriteria() {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
			oredCriteria.add(criteria);
		}
		return criteria;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	protected Criteria createCriteriaInternal() {
		Criteria criteria = new Criteria();
		return criteria;
	}

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public void clear() {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	/**
	 * This class was generated by MyBatis Generator. This class corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;

		protected GeneratedCriteria() {
			super();
			criteria = new ArrayList<Criterion>();
		}

		public boolean isValid() {
			return criteria.size() > 0;
		}

		public List<Criterion> getAllCriteria() {
			return criteria;
		}

		public List<Criterion> getCriteria() {
			return criteria;
		}

		protected void addCriterion(String condition) {
			if (condition == null) {
				throw new RuntimeException("Value for condition cannot be null");
			}
			criteria.add(new Criterion(condition));
		}

		protected void addCriterion(String condition, Object value, String property) {
			if (value == null) {
				throw new RuntimeException("Value for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value));
		}

		protected void addCriterion(String condition, Object value1, Object value2, String property) {
			if (value1 == null || value2 == null) {
				throw new RuntimeException("Between values for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value1, value2));
		}

		public Criteria andIdIsNull() {
			addCriterion("id is null");
			return (Criteria) this;
		}

		public Criteria andIdIsNotNull() {
			addCriterion("id is not null");
			return (Criteria) this;
		}

		public Criteria andIdEqualTo(String value) {
			addCriterion("id =", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotEqualTo(String value) {
			addCriterion("id <>", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdGreaterThan(String value) {
			addCriterion("id >", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdGreaterThanOrEqualTo(String value) {
			addCriterion("id >=", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdLessThan(String value) {
			addCriterion("id <", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdLessThanOrEqualTo(String value) {
			addCriterion("id <=", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdLike(String value) {
			addCriterion("id like", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotLike(String value) {
			addCriterion("id not like", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdIn(List<String> values) {
			addCriterion("id in", values, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotIn(List<String> values) {
			addCriterion("id not in", values, "id");
			return (Criteria) this;
		}

		public Criteria andIdBetween(String value1, String value2) {
			addCriterion("id between", value1, value2, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotBetween(String value1, String value2) {
			addCriterion("id not between", value1, value2, "id");
			return (Criteria) this;
		}

		public Criteria andNameIsNull() {
			addCriterion("name is null");
			return (Criteria) this;
		}

		public Criteria andNameIsNotNull() {
			addCriterion("name is not null");
			return (Criteria) this;
		}

		public Criteria andNameEqualTo(String value) {
			addCriterion("name =", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotEqualTo(String value) {
			addCriterion("name <>", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameGreaterThan(String value) {
			addCriterion("name >", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameGreaterThanOrEqualTo(String value) {
			addCriterion("name >=", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameLessThan(String value) {
			addCriterion("name <", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameLessThanOrEqualTo(String value) {
			addCriterion("name <=", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameLike(String value) {
			addCriterion("name like", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotLike(String value) {
			addCriterion("name not like", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameIn(List<String> values) {
			addCriterion("name in", values, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotIn(List<String> values) {
			addCriterion("name not in", values, "name");
			return (Criteria) this;
		}

		public Criteria andNameBetween(String value1, String value2) {
			addCriterion("name between", value1, value2, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotBetween(String value1, String value2) {
			addCriterion("name not between", value1, value2, "name");
			return (Criteria) this;
		}

		public Criteria andSourceIsNull() {
			addCriterion("source is null");
			return (Criteria) this;
		}

		public Criteria andSourceIsNotNull() {
			addCriterion("source is not null");
			return (Criteria) this;
		}

		public Criteria andSourceEqualTo(Integer value) {
			addCriterion("source =", value, "source");
			return (Criteria) this;
		}

		public Criteria andSourceNotEqualTo(Integer value) {
			addCriterion("source <>", value, "source");
			return (Criteria) this;
		}

		public Criteria andSourceGreaterThan(Integer value) {
			addCriterion("source >", value, "source");
			return (Criteria) this;
		}

		public Criteria andSourceGreaterThanOrEqualTo(Integer value) {
			addCriterion("source >=", value, "source");
			return (Criteria) this;
		}

		public Criteria andSourceLessThan(Integer value) {
			addCriterion("source <", value, "source");
			return (Criteria) this;
		}

		public Criteria andSourceLessThanOrEqualTo(Integer value) {
			addCriterion("source <=", value, "source");
			return (Criteria) this;
		}

		public Criteria andSourceIn(List<Integer> values) {
			addCriterion("source in", values, "source");
			return (Criteria) this;
		}

		public Criteria andSourceNotIn(List<Integer> values) {
			addCriterion("source not in", values, "source");
			return (Criteria) this;
		}

		public Criteria andSourceBetween(Integer value1, Integer value2) {
			addCriterion("source between", value1, value2, "source");
			return (Criteria) this;
		}

		public Criteria andSourceNotBetween(Integer value1, Integer value2) {
			addCriterion("source not between", value1, value2, "source");
			return (Criteria) this;
		}

		public Criteria andMoneyIsNull() {
			addCriterion("money is null");
			return (Criteria) this;
		}

		public Criteria andMoneyIsNotNull() {
			addCriterion("money is not null");
			return (Criteria) this;
		}

		public Criteria andMoneyEqualTo(BigDecimal value) {
			addCriterion("money =", value, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyNotEqualTo(BigDecimal value) {
			addCriterion("money <>", value, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyGreaterThan(BigDecimal value) {
			addCriterion("money >", value, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyGreaterThanOrEqualTo(BigDecimal value) {
			addCriterion("money >=", value, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyLessThan(BigDecimal value) {
			addCriterion("money <", value, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyLessThanOrEqualTo(BigDecimal value) {
			addCriterion("money <=", value, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyIn(List<BigDecimal> values) {
			addCriterion("money in", values, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyNotIn(List<BigDecimal> values) {
			addCriterion("money not in", values, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyBetween(BigDecimal value1, BigDecimal value2) {
			addCriterion("money between", value1, value2, "money");
			return (Criteria) this;
		}

		public Criteria andMoneyNotBetween(BigDecimal value1, BigDecimal value2) {
			addCriterion("money not between", value1, value2, "money");
			return (Criteria) this;
		}

		public Criteria andDurationDayIsNull() {
			addCriterion("duration_day is null");
			return (Criteria) this;
		}

		public Criteria andDurationDayIsNotNull() {
			addCriterion("duration_day is not null");
			return (Criteria) this;
		}

		public Criteria andDurationDayEqualTo(Integer value) {
			addCriterion("duration_day =", value, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayNotEqualTo(Integer value) {
			addCriterion("duration_day <>", value, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayGreaterThan(Integer value) {
			addCriterion("duration_day >", value, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayGreaterThanOrEqualTo(Integer value) {
			addCriterion("duration_day >=", value, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayLessThan(Integer value) {
			addCriterion("duration_day <", value, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayLessThanOrEqualTo(Integer value) {
			addCriterion("duration_day <=", value, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayIn(List<Integer> values) {
			addCriterion("duration_day in", values, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayNotIn(List<Integer> values) {
			addCriterion("duration_day not in", values, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayBetween(Integer value1, Integer value2) {
			addCriterion("duration_day between", value1, value2, "durationDay");
			return (Criteria) this;
		}

		public Criteria andDurationDayNotBetween(Integer value1, Integer value2) {
			addCriterion("duration_day not between", value1, value2, "durationDay");
			return (Criteria) this;
		}

		public Criteria andActiveStateIsNull() {
			addCriterion("active_state is null");
			return (Criteria) this;
		}

		public Criteria andActiveStateIsNotNull() {
			addCriterion("active_state is not null");
			return (Criteria) this;
		}

		public Criteria andActiveStateEqualTo(Integer value) {
			addCriterion("active_state =", value, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateNotEqualTo(Integer value) {
			addCriterion("active_state <>", value, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateGreaterThan(Integer value) {
			addCriterion("active_state >", value, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateGreaterThanOrEqualTo(Integer value) {
			addCriterion("active_state >=", value, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateLessThan(Integer value) {
			addCriterion("active_state <", value, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateLessThanOrEqualTo(Integer value) {
			addCriterion("active_state <=", value, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateIn(List<Integer> values) {
			addCriterion("active_state in", values, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateNotIn(List<Integer> values) {
			addCriterion("active_state not in", values, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateBetween(Integer value1, Integer value2) {
			addCriterion("active_state between", value1, value2, "activeState");
			return (Criteria) this;
		}

		public Criteria andActiveStateNotBetween(Integer value1, Integer value2) {
			addCriterion("active_state not between", value1, value2, "activeState");
			return (Criteria) this;
		}

		public Criteria andGrantingUidIsNull() {
			addCriterion("granting_uid is null");
			return (Criteria) this;
		}

		public Criteria andGrantingUidIsNotNull() {
			addCriterion("granting_uid is not null");
			return (Criteria) this;
		}

		public Criteria andGrantingUidEqualTo(String value) {
			addCriterion("granting_uid =", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidNotEqualTo(String value) {
			addCriterion("granting_uid <>", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidGreaterThan(String value) {
			addCriterion("granting_uid >", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidGreaterThanOrEqualTo(String value) {
			addCriterion("granting_uid >=", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidLessThan(String value) {
			addCriterion("granting_uid <", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidLessThanOrEqualTo(String value) {
			addCriterion("granting_uid <=", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidLike(String value) {
			addCriterion("granting_uid like", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidNotLike(String value) {
			addCriterion("granting_uid not like", value, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidIn(List<String> values) {
			addCriterion("granting_uid in", values, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidNotIn(List<String> values) {
			addCriterion("granting_uid not in", values, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidBetween(String value1, String value2) {
			addCriterion("granting_uid between", value1, value2, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andGrantingUidNotBetween(String value1, String value2) {
			addCriterion("granting_uid not between", value1, value2, "grantingUid");
			return (Criteria) this;
		}

		public Criteria andLimitUseIsNull() {
			addCriterion("limit_use is null");
			return (Criteria) this;
		}

		public Criteria andLimitUseIsNotNull() {
			addCriterion("limit_use is not null");
			return (Criteria) this;
		}

		public Criteria andLimitUseEqualTo(Integer value) {
			addCriterion("limit_use =", value, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseNotEqualTo(Integer value) {
			addCriterion("limit_use <>", value, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseGreaterThan(Integer value) {
			addCriterion("limit_use >", value, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseGreaterThanOrEqualTo(Integer value) {
			addCriterion("limit_use >=", value, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseLessThan(Integer value) {
			addCriterion("limit_use <", value, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseLessThanOrEqualTo(Integer value) {
			addCriterion("limit_use <=", value, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseIn(List<Integer> values) {
			addCriterion("limit_use in", values, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseNotIn(List<Integer> values) {
			addCriterion("limit_use not in", values, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseBetween(Integer value1, Integer value2) {
			addCriterion("limit_use between", value1, value2, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitUseNotBetween(Integer value1, Integer value2) {
			addCriterion("limit_use not between", value1, value2, "limitUse");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdIsNull() {
			addCriterion("limit_project_id is null");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdIsNotNull() {
			addCriterion("limit_project_id is not null");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdEqualTo(String value) {
			addCriterion("limit_project_id =", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdNotEqualTo(String value) {
			addCriterion("limit_project_id <>", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdGreaterThan(String value) {
			addCriterion("limit_project_id >", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdGreaterThanOrEqualTo(String value) {
			addCriterion("limit_project_id >=", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdLessThan(String value) {
			addCriterion("limit_project_id <", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdLessThanOrEqualTo(String value) {
			addCriterion("limit_project_id <=", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdLike(String value) {
			addCriterion("limit_project_id like", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdNotLike(String value) {
			addCriterion("limit_project_id not like", value, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdIn(List<String> values) {
			addCriterion("limit_project_id in", values, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdNotIn(List<String> values) {
			addCriterion("limit_project_id not in", values, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdBetween(String value1, String value2) {
			addCriterion("limit_project_id between", value1, value2, "limitProjectId");
			return (Criteria) this;
		}

		public Criteria andLimitProjectIdNotBetween(String value1, String value2) {
			addCriterion("limit_project_id not between", value1, value2, "limitProjectId");
			return (Criteria) this;
		}
	}

	/**
	 * This class was generated by MyBatis Generator. This class corresponds to the database table jt_voucher
	 * @mbg.generated  Tue Oct 16 15:59:34 CST 2018
	 */
	public static class Criterion {
		private String condition;
		private Object value;
		private Object secondValue;
		private boolean noValue;
		private boolean singleValue;
		private boolean betweenValue;
		private boolean listValue;
		private String typeHandler;

		public String getCondition() {
			return condition;
		}

		public Object getValue() {
			return value;
		}

		public Object getSecondValue() {
			return secondValue;
		}

		public boolean isNoValue() {
			return noValue;
		}

		public boolean isSingleValue() {
			return singleValue;
		}

		public boolean isBetweenValue() {
			return betweenValue;
		}

		public boolean isListValue() {
			return listValue;
		}

		public String getTypeHandler() {
			return typeHandler;
		}

		protected Criterion(String condition) {
			super();
			this.condition = condition;
			this.typeHandler = null;
			this.noValue = true;
		}

		protected Criterion(String condition, Object value, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.typeHandler = typeHandler;
			if (value instanceof List<?>) {
				this.listValue = true;
			} else {
				this.singleValue = true;
			}
		}

		protected Criterion(String condition, Object value) {
			this(condition, value, null);
		}

		protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.secondValue = secondValue;
			this.typeHandler = typeHandler;
			this.betweenValue = true;
		}

		protected Criterion(String condition, Object value, Object secondValue) {
			this(condition, value, secondValue, null);
		}
	}

	/**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table jt_voucher
     *
     * @mbg.generated do_not_delete_during_merge Tue Oct 16 15:03:29 CST 2018
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }
}