package eu.dnetlib.goldoa.domain.stats;

import com.google.gwt.user.client.rpc.IsSerializable;

import java.util.Map;

/**
 * Created by antleb on 11/17/15.
 */
public class Numbers implements IsSerializable {

	public enum Category implements IsSerializable {
		REQUESTS("requests"),
		PAID_REQUESTS("paid requests"),
		APPROVED_REQUESTS_WITH_DOI("appoved requests with doi"),
		PAID_REQUESTS_WITH_DOI("paid requests with doi"),
		PROJECTS("projects"),
		TOTAL_AMOUNT("total_amount"),
		AVERAGE_AMOUNT("total_amount"),
		AVERAGE_PER_ARTICLE("average per article"),
		AVERAGE_PER_MONOGRAPH("average per monograph"),
		AVERAGE_PER_BOOK_CHAPTER("average per book chapter"),
		PAID_ARTICLE_REQUESTS("paid article requests"),
		PAID_MONOGRAPH_REQUESTS("paid monograph requests"),
		PAID_BOOK_CHAPTER_REQUESTS("paid book chapter requests");

		private String value = this.name();

		Category() {
		}

		Category(String value) {
			this.value = value;
		}

		public String getValue() {
			return value;
		}
	}

	private Map<Category, Integer> numbers;

	public Numbers() {
	}

	public Numbers(Map<Category, Integer> numbers) {
		this.numbers = numbers;
	}

	public int getNumber(Category category) {
		if (numbers.containsKey(category))
			return numbers.get(category);
		else
			return -1;
	}

	public void setNumbers(Map<Category, Integer> numbers) {
		this.numbers = numbers;
	}
}
