package eu.dnetlib.goldoa.domain;

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

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

/**
 * Created by antleb on 3/26/15.
 */
public class RequestInfo implements IsSerializable {
	private String id;
	private Person user;
	private Date date;
	private Person researcher;
	private Organization organization;
	private Project project;
	private Publication publication;
	private String publisherEmail;
	private BudgetInfo budget;
	private Invoice invoice;
	private Float projectParticipation;
	private Float apc;
	private Float discount;
	private Float fundingRequested;
	private Currency currency;
	private Request.RequestStatus status;
	private Eligibility eligibility;
	private List<Comment> comments = new ArrayList<Comment>();
	private BankAccount bankAccount;
	private List<RequestCoFunder> coFunders;
	private Float apc_paid;
	private Float transfer_cost;
	private Float other_cost;
	private Date date_paid;
	private Request request;
	private Date submissionDate = new Date();
	private Date approvalDate = new Date();

	public RequestInfo() {
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public Person getUser() {
		return user;
	}

	public void setUser(Person user) {
		this.user = user;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	public Person getResearcher() {
		return researcher;
	}

	public void setResearcher(Person researcher) {
		this.researcher = researcher;
	}

	public Organization getOrganization() {
		return organization;
	}

	public void setOrganization(Organization organization) {
		this.organization = organization;
	}

	public Project getProject() {
		return project;
	}

	public void setProject(Project project) {
		this.project = project;
	}

	public Publication getPublication() {
		return publication;
	}

	public void setPublication(Publication publication) {
		this.publication = publication;
	}

	public String getPublisherEmail() {
		return publisherEmail;
	}

	public void setPublisherEmail(String publisherEmail) {
		this.publisherEmail = publisherEmail;
	}

	public BudgetInfo getBudgetInfo() {
		return budget;
	}

	public void setBudgetInfo(BudgetInfo budget) {
		this.budget = budget;
	}

	public Invoice getInvoice() {
		return invoice;
	}

	public void setInvoice(Invoice invoice) {
		this.invoice = invoice;
	}

	public Float getApc() {
		return apc;
	}

	public void setApc(Float apc) {
		this.apc = apc;
	}

	public Float getDiscount() {
		return discount;
	}

	public void setDiscount(Float discount) {
		this.discount = discount;
	}

	public Float getProjectParticipation() {
		return projectParticipation;
	}

	public void setProjectParticipation(Float projectParticipation) {
		this.projectParticipation = projectParticipation;
	}

	public Float getFundingRequested() {
		return fundingRequested;
	}

	public void setFundingRequested(Float fundingRequested) {
		this.fundingRequested = fundingRequested;
	}

	public Currency getCurrency() {
		return currency;
	}

	public void setCurrency(Currency currency) {
		this.currency = currency;
	}

	public Eligibility getEligibility() {
		return eligibility;
	}

	public void setEligibility(Eligibility eligibility) {
		this.eligibility = eligibility;
	}

	public Request.RequestStatus getStatus() {
		return status;
	}

	public void setStatus(Request.RequestStatus status) {
		this.status = status;
	}

	public List<Comment> getComments() {
		return comments;
	}

	public void setComments(List<Comment> comments) {
		this.comments = comments;
	}

	public BankAccount getBankAccount() {
		return bankAccount;
	}

	public void setBankAccount(BankAccount bankAccount) {
		this.bankAccount = bankAccount;
	}

	public List<RequestCoFunder> getCoFunders() {
		return coFunders;
	}

	public void setCoFunders(List<RequestCoFunder> coFunders) {
		this.coFunders = coFunders;
	}

	public Float getApc_paid() {
		return apc_paid;
	}

	public void setApc_paid(Float apc_paid) {
		this.apc_paid = apc_paid;
	}

	public Float getTransfer_cost() {
		return transfer_cost;
	}

	public void setTransfer_cost(Float transfer_cost) {
		this.transfer_cost = transfer_cost;
	}

	public Float getOther_cost() {
		return other_cost;
	}

	public void setOther_cost(Float other_cost) {
		this.other_cost = other_cost;
	}

	public Date getDate_paid() {
		return date_paid;
	}

	public void setDate_paid(Date date_paid) {
		this.date_paid = date_paid;
	}

	public Request getRequest() {
		return request;
	}

	public void setRequest(Request request) {
		this.request = request;
	}

	public Date getSubmissionDate() {
		return submissionDate;
	}

	public void setSubmissionDate(Date submissionDate) {
		this.submissionDate = submissionDate;
	}

	public Date getApprovalDate() {
		return approvalDate;
	}

	public void setApprovalDate(Date approvalDate) {
		this.approvalDate = approvalDate;
	}
}
