package eu.dnetlib.espas.gui.shared;

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

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

/**
 * Created by stefania on 10/1/14.
 */
public class DownloadRequest implements IsSerializable {

    private String requestId;
    private Date requestDate;
    private String requestName;

    private Query query;
    private List<RefineOption> refineOptions;
    private List<Vocabulary> selectedObservedProperties;

    private String userId;
    private String type;

    private DateRange selectedDateRange;
    private String searchOptionsId;

    private SearchOptions searchOptions;

    private String status;

    public DownloadRequest() {
    }

    public DownloadRequest(String requestId, Date requestDate, String requestName) {
        this.requestId = requestId;
        this.requestDate = requestDate;
        this.requestName = requestName;
    }

    public DownloadRequest(String requestId, Date requestDate, String requestName, Query query,
                           List<RefineOption> refineOptions, List<Vocabulary> selectedObservedProperties,
                           String userId, String type, String searchOptionsId) {

        this.requestId = requestId;
        this.requestDate = requestDate;
        this.requestName = requestName;
        this.query = query;
        this.refineOptions = refineOptions;
        this.selectedObservedProperties = selectedObservedProperties;
        this.userId = userId;
        this.type = type;
        this.searchOptionsId = searchOptionsId;
    }

    public String getRequestId() {
        return requestId;
    }

    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    public Date getRequestDate() {
        return requestDate;
    }

    public void setRequestDate(Date requestDate) {
        this.requestDate = requestDate;
    }

    public String getRequestName() {
        return requestName;
    }

    public void setRequestName(String requestName) {
        this.requestName = requestName;
    }

    public Query getQuery() {
        return query;
    }

    public void setQuery(Query query) {
        this.query = query;
    }

    public List<RefineOption> getRefineOptions() {
        return refineOptions;
    }

    public void setRefineOptions(List<RefineOption> refineOptions) {
        this.refineOptions = refineOptions;
    }

    public List<Vocabulary> getSelectedObservedProperties() {
        return selectedObservedProperties;
    }

    public void setSelectedObservedProperties(List<Vocabulary> selectedObservedProperties) {
        this.selectedObservedProperties = selectedObservedProperties;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public DateRange getSelectedDateRange() {
        return selectedDateRange;
    }

    public void setSelectedDateRange(DateRange selectedDateRange) {
        this.selectedDateRange = selectedDateRange;
    }

    public String getSearchOptionsId() {
        return searchOptionsId;
    }

    public void setSearchOptionsId(String searchOptionsId) {
        this.searchOptionsId = searchOptionsId;
    }

    public SearchOptions getSearchOptions() {
        return searchOptions;
    }

    public void setSearchOptions(SearchOptions searchOptions) {
        this.searchOptions = searchOptions;
    }

    public String getStatus() {
        return status;
    }

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