/**
 * This class is generated by jOOQ
 */
package gen.example.jooq.routines;


import gen.example.jooq.Sakila;

import java.math.BigDecimal;

import javax.annotation.Generated;

import org.jooq.Parameter;
import org.jooq.impl.AbstractRoutine;


/**
 * Provides a customizable report on best customers
 */
@Generated(
	value = {
		"http://www.jooq.org",
		"jOOQ version:3.6.0"
	},
	comments = "This class is generated by jOOQ"
)
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class RewardsReport extends AbstractRoutine<java.lang.Void> {

	private static final long serialVersionUID = 1003096237;

	/**
	 * The parameter <code>sakila.rewards_report.min_monthly_purchases</code>.
	 */
	public static final Parameter<Byte> minMonthlyPurchases = createParameter("min_monthly_purchases", org.jooq.impl.SQLDataType.TINYINT, false);

	/**
	 * The parameter <code>sakila.rewards_report.min_dollar_amount_purchased</code>.
	 */
	public static final Parameter<BigDecimal> minDollarAmountPurchased = createParameter("min_dollar_amount_purchased", org.jooq.impl.SQLDataType.DECIMAL.precision(10, 2), false);

	/**
	 * The parameter <code>sakila.rewards_report.count_rewardees</code>.
	 */
	public static final Parameter<Integer> countRewardees = createParameter("count_rewardees", org.jooq.impl.SQLDataType.INTEGER, false);

	/**
	 * Create a new routine call instance
	 */
	public RewardsReport() {
		super("rewards_report", Sakila.sakila);

		addInParameter(minMonthlyPurchases);
		addInParameter(minDollarAmountPurchased);
		addOutParameter(countRewardees);
	}

	/**
	 * Set the <code>min_monthly_purchases</code> parameter IN value to the routine
	 */
	public void setMinMonthlyPurchases(Byte value) {
		setValue(minMonthlyPurchases, value);
	}

	/**
	 * Set the <code>min_dollar_amount_purchased</code> parameter IN value to the routine
	 */
	public void setMinDollarAmountPurchased(BigDecimal value) {
		setValue(minDollarAmountPurchased, value);
	}

	/**
	 * Get the <code>count_rewardees</code> parameter OUT value from the routine
	 */
	public Integer getCountRewardees() {
		return getValue(countRewardees);
	}
}
