package com.uas.search.constant.model;

import java.io.Serializable;

/**
 * 排序
 * 
 * @author sunyj
 * @since 2016年11月23日 下午1:47:44
 */
public class Sort implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 排序的字段
	 */
	private Field field;

	/**
	 * 排序默认为升序，若为true，则进行反转
	 */
	private boolean reverse = false;

	/**
	 * @param field
	 *            排序的字段
	 * @param reverse
	 *            如果为true，则反转默认的升序
	 */
	public Sort(Field field, boolean reverse) {
		this.field = field;
		this.reverse = reverse;
	}

	/**
	 * @param field
	 *            排序的字段
	 */
	public Sort(Field field) {
		this(field, false);
	}

	public Sort() {

	}

	/**
	 * @return 排序的字段
	 */
	public Field getField() {
		return field;
	}

	public void setField(Field field) {
		this.field = field;
	}

	/**
	 * 排序是否应该被反转
	 * 
	 * @return 如果为true，则反转默认的升序
	 */
	public boolean isReverse() {
		return reverse;
	}

	public void setReverse(boolean reverse) {
		this.reverse = reverse;
	}

	@Override
	public String toString() {
		return "Sort [field=" + field + ", reverse=" + reverse + "]";
	}

	/**
	 * 排序的字段
	 * 
	 * @author sunyj
	 * @since 2017年7月8日 下午5:12:07
	 */
	public enum Field {
		/**
		 * 批次库存
		 */
		GO_RESERVE,

		/**
		 * 批次价格（人民币）
		 */
		GO_MINPRICERMB,

		/**
		 * 批次价格（美元）
		 */
		GO_MINPRICEUSD,

		/**
		 * 批次搜索（由器件、品牌、类目等因素决定，不受reverse和missingValue影响）
		 */
		GO_SEARCH;
	}

}