package com.platform.yijia.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class CouponExample {
    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table coupon
     *
     * @mbg.generated
     */
    protected String orderByClause;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table coupon
     *
     * @mbg.generated
     */
    protected boolean distinct;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table coupon
     *
     * @mbg.generated
     */
    protected List<Criteria> oredCriteria;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public CouponExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public String getOrderByClause() {
        return orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public boolean isDistinct() {
        return distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    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 coupon
     *
     * @mbg.generated
     */
    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 coupon
     *
     * @mbg.generated
     */
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table coupon
     *
     * @mbg.generated
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table coupon
     *
     * @mbg.generated
     */
    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));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andCouponIdIsNull() {
            addCriterion("coupon_id is null");
            return (Criteria) this;
        }

        public Criteria andCouponIdIsNotNull() {
            addCriterion("coupon_id is not null");
            return (Criteria) this;
        }

        public Criteria andCouponIdEqualTo(Integer value) {
            addCriterion("coupon_id =", value, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdNotEqualTo(Integer value) {
            addCriterion("coupon_id <>", value, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdGreaterThan(Integer value) {
            addCriterion("coupon_id >", value, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("coupon_id >=", value, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdLessThan(Integer value) {
            addCriterion("coupon_id <", value, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdLessThanOrEqualTo(Integer value) {
            addCriterion("coupon_id <=", value, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdIn(List<Integer> values) {
            addCriterion("coupon_id in", values, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdNotIn(List<Integer> values) {
            addCriterion("coupon_id not in", values, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdBetween(Integer value1, Integer value2) {
            addCriterion("coupon_id between", value1, value2, "couponId");
            return (Criteria) this;
        }

        public Criteria andCouponIdNotBetween(Integer value1, Integer value2) {
            addCriterion("coupon_id not between", value1, value2, "couponId");
            return (Criteria) this;
        }

        public Criteria andStationNoIsNull() {
            addCriterion("station_no is null");
            return (Criteria) this;
        }

        public Criteria andStationNoIsNotNull() {
            addCriterion("station_no is not null");
            return (Criteria) this;
        }

        public Criteria andStationNoEqualTo(String value) {
            addCriterion("station_no =", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoNotEqualTo(String value) {
            addCriterion("station_no <>", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoGreaterThan(String value) {
            addCriterion("station_no >", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoGreaterThanOrEqualTo(String value) {
            addCriterion("station_no >=", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoLessThan(String value) {
            addCriterion("station_no <", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoLessThanOrEqualTo(String value) {
            addCriterion("station_no <=", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoLike(String value) {
            addCriterion("station_no like", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoNotLike(String value) {
            addCriterion("station_no not like", value, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoIn(List<String> values) {
            addCriterion("station_no in", values, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoNotIn(List<String> values) {
            addCriterion("station_no not in", values, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoBetween(String value1, String value2) {
            addCriterion("station_no between", value1, value2, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNoNotBetween(String value1, String value2) {
            addCriterion("station_no not between", value1, value2, "stationNo");
            return (Criteria) this;
        }

        public Criteria andStationNameIsNull() {
            addCriterion("station_name is null");
            return (Criteria) this;
        }

        public Criteria andStationNameIsNotNull() {
            addCriterion("station_name is not null");
            return (Criteria) this;
        }

        public Criteria andStationNameEqualTo(String value) {
            addCriterion("station_name =", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameNotEqualTo(String value) {
            addCriterion("station_name <>", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameGreaterThan(String value) {
            addCriterion("station_name >", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameGreaterThanOrEqualTo(String value) {
            addCriterion("station_name >=", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameLessThan(String value) {
            addCriterion("station_name <", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameLessThanOrEqualTo(String value) {
            addCriterion("station_name <=", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameLike(String value) {
            addCriterion("station_name like", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameNotLike(String value) {
            addCriterion("station_name not like", value, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameIn(List<String> values) {
            addCriterion("station_name in", values, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameNotIn(List<String> values) {
            addCriterion("station_name not in", values, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameBetween(String value1, String value2) {
            addCriterion("station_name between", value1, value2, "stationName");
            return (Criteria) this;
        }

        public Criteria andStationNameNotBetween(String value1, String value2) {
            addCriterion("station_name not between", value1, value2, "stationName");
            return (Criteria) this;
        }

        public Criteria andCouponNameIsNull() {
            addCriterion("coupon_name is null");
            return (Criteria) this;
        }

        public Criteria andCouponNameIsNotNull() {
            addCriterion("coupon_name is not null");
            return (Criteria) this;
        }

        public Criteria andCouponNameEqualTo(String value) {
            addCriterion("coupon_name =", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameNotEqualTo(String value) {
            addCriterion("coupon_name <>", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameGreaterThan(String value) {
            addCriterion("coupon_name >", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameGreaterThanOrEqualTo(String value) {
            addCriterion("coupon_name >=", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameLessThan(String value) {
            addCriterion("coupon_name <", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameLessThanOrEqualTo(String value) {
            addCriterion("coupon_name <=", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameLike(String value) {
            addCriterion("coupon_name like", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameNotLike(String value) {
            addCriterion("coupon_name not like", value, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameIn(List<String> values) {
            addCriterion("coupon_name in", values, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameNotIn(List<String> values) {
            addCriterion("coupon_name not in", values, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameBetween(String value1, String value2) {
            addCriterion("coupon_name between", value1, value2, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponNameNotBetween(String value1, String value2) {
            addCriterion("coupon_name not between", value1, value2, "couponName");
            return (Criteria) this;
        }

        public Criteria andCouponRuleIsNull() {
            addCriterion("coupon_rule is null");
            return (Criteria) this;
        }

        public Criteria andCouponRuleIsNotNull() {
            addCriterion("coupon_rule is not null");
            return (Criteria) this;
        }

        public Criteria andCouponRuleEqualTo(String value) {
            addCriterion("coupon_rule =", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotEqualTo(String value) {
            addCriterion("coupon_rule <>", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleGreaterThan(String value) {
            addCriterion("coupon_rule >", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleGreaterThanOrEqualTo(String value) {
            addCriterion("coupon_rule >=", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleLessThan(String value) {
            addCriterion("coupon_rule <", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleLessThanOrEqualTo(String value) {
            addCriterion("coupon_rule <=", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleLike(String value) {
            addCriterion("coupon_rule like", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotLike(String value) {
            addCriterion("coupon_rule not like", value, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleIn(List<String> values) {
            addCriterion("coupon_rule in", values, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotIn(List<String> values) {
            addCriterion("coupon_rule not in", values, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleBetween(String value1, String value2) {
            addCriterion("coupon_rule between", value1, value2, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponRuleNotBetween(String value1, String value2) {
            addCriterion("coupon_rule not between", value1, value2, "couponRule");
            return (Criteria) this;
        }

        public Criteria andCouponTypeIsNull() {
            addCriterion("coupon_type is null");
            return (Criteria) this;
        }

        public Criteria andCouponTypeIsNotNull() {
            addCriterion("coupon_type is not null");
            return (Criteria) this;
        }

        public Criteria andCouponTypeEqualTo(String value) {
            addCriterion("coupon_type =", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeNotEqualTo(String value) {
            addCriterion("coupon_type <>", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeGreaterThan(String value) {
            addCriterion("coupon_type >", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeGreaterThanOrEqualTo(String value) {
            addCriterion("coupon_type >=", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeLessThan(String value) {
            addCriterion("coupon_type <", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeLessThanOrEqualTo(String value) {
            addCriterion("coupon_type <=", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeLike(String value) {
            addCriterion("coupon_type like", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeNotLike(String value) {
            addCriterion("coupon_type not like", value, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeIn(List<String> values) {
            addCriterion("coupon_type in", values, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeNotIn(List<String> values) {
            addCriterion("coupon_type not in", values, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeBetween(String value1, String value2) {
            addCriterion("coupon_type between", value1, value2, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponTypeNotBetween(String value1, String value2) {
            addCriterion("coupon_type not between", value1, value2, "couponType");
            return (Criteria) this;
        }

        public Criteria andCouponAmtIsNull() {
            addCriterion("coupon_amt is null");
            return (Criteria) this;
        }

        public Criteria andCouponAmtIsNotNull() {
            addCriterion("coupon_amt is not null");
            return (Criteria) this;
        }

        public Criteria andCouponAmtEqualTo(Double value) {
            addCriterion("coupon_amt =", value, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtNotEqualTo(Double value) {
            addCriterion("coupon_amt <>", value, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtGreaterThan(Double value) {
            addCriterion("coupon_amt >", value, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtGreaterThanOrEqualTo(Double value) {
            addCriterion("coupon_amt >=", value, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtLessThan(Double value) {
            addCriterion("coupon_amt <", value, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtLessThanOrEqualTo(Double value) {
            addCriterion("coupon_amt <=", value, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtIn(List<Double> values) {
            addCriterion("coupon_amt in", values, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtNotIn(List<Double> values) {
            addCriterion("coupon_amt not in", values, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtBetween(Double value1, Double value2) {
            addCriterion("coupon_amt between", value1, value2, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponAmtNotBetween(Double value1, Double value2) {
            addCriterion("coupon_amt not between", value1, value2, "couponAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtIsNull() {
            addCriterion("coupon_reul_amt is null");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtIsNotNull() {
            addCriterion("coupon_reul_amt is not null");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtEqualTo(Double value) {
            addCriterion("coupon_reul_amt =", value, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtNotEqualTo(Double value) {
            addCriterion("coupon_reul_amt <>", value, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtGreaterThan(Double value) {
            addCriterion("coupon_reul_amt >", value, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtGreaterThanOrEqualTo(Double value) {
            addCriterion("coupon_reul_amt >=", value, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtLessThan(Double value) {
            addCriterion("coupon_reul_amt <", value, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtLessThanOrEqualTo(Double value) {
            addCriterion("coupon_reul_amt <=", value, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtIn(List<Double> values) {
            addCriterion("coupon_reul_amt in", values, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtNotIn(List<Double> values) {
            addCriterion("coupon_reul_amt not in", values, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtBetween(Double value1, Double value2) {
            addCriterion("coupon_reul_amt between", value1, value2, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponReulAmtNotBetween(Double value1, Double value2) {
            addCriterion("coupon_reul_amt not between", value1, value2, "couponReulAmt");
            return (Criteria) this;
        }

        public Criteria andCouponOilIsNull() {
            addCriterion("coupon_oil is null");
            return (Criteria) this;
        }

        public Criteria andCouponOilIsNotNull() {
            addCriterion("coupon_oil is not null");
            return (Criteria) this;
        }

        public Criteria andCouponOilEqualTo(String value) {
            addCriterion("coupon_oil =", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilNotEqualTo(String value) {
            addCriterion("coupon_oil <>", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilGreaterThan(String value) {
            addCriterion("coupon_oil >", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilGreaterThanOrEqualTo(String value) {
            addCriterion("coupon_oil >=", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilLessThan(String value) {
            addCriterion("coupon_oil <", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilLessThanOrEqualTo(String value) {
            addCriterion("coupon_oil <=", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilLike(String value) {
            addCriterion("coupon_oil like", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilNotLike(String value) {
            addCriterion("coupon_oil not like", value, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilIn(List<String> values) {
            addCriterion("coupon_oil in", values, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilNotIn(List<String> values) {
            addCriterion("coupon_oil not in", values, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilBetween(String value1, String value2) {
            addCriterion("coupon_oil between", value1, value2, "couponOil");
            return (Criteria) this;
        }

        public Criteria andCouponOilNotBetween(String value1, String value2) {
            addCriterion("coupon_oil not between", value1, value2, "couponOil");
            return (Criteria) this;
        }

        public Criteria andValidityDateIsNull() {
            addCriterion("validity_date is null");
            return (Criteria) this;
        }

        public Criteria andValidityDateIsNotNull() {
            addCriterion("validity_date is not null");
            return (Criteria) this;
        }

        public Criteria andValidityDateEqualTo(Date value) {
            addCriterionForJDBCDate("validity_date =", value, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateNotEqualTo(Date value) {
            addCriterionForJDBCDate("validity_date <>", value, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateGreaterThan(Date value) {
            addCriterionForJDBCDate("validity_date >", value, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("validity_date >=", value, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateLessThan(Date value) {
            addCriterionForJDBCDate("validity_date <", value, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("validity_date <=", value, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateIn(List<Date> values) {
            addCriterionForJDBCDate("validity_date in", values, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateNotIn(List<Date> values) {
            addCriterionForJDBCDate("validity_date not in", values, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("validity_date between", value1, value2, "validityDate");
            return (Criteria) this;
        }

        public Criteria andValidityDateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("validity_date not between", value1, value2, "validityDate");
            return (Criteria) this;
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table coupon
     *
     * @mbg.generated do_not_delete_during_merge
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table coupon
     *
     * @mbg.generated
     */
    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);
        }
    }
}