package eu.dnetlib.data.jobManager;

import com.google.gson.JsonArray;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.UUID;

public class Job {
    public enum TYPE {
        CLAIM,
        FEED
    }
    public enum STATUS {
        PENDING,
        COMPLETE,
        FAILED,
        WORKING
    }

    private String id;
    private STATUS status;
    private Date createdAt;
    TYPE type;
    ArrayList<String> insertedIds = new ArrayList<String>();
    JsonArray errorInClaims = new JsonArray();
    JsonArray inputArray;
    private Integer code;
    String message;
    String user;

    public Job() {
        this.id = UUID.randomUUID().toString();
        this.status = STATUS.PENDING;
        this.createdAt = new Date();
    }

    public String getId() {
        return id;
    }

    public STATUS getStatus() {
        return status;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

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

    public TYPE getType() {
        return type;
    }

    public ArrayList<String> getInsertedIds() {
        return insertedIds;
    }

    public JsonArray getErrorInClaims() {
        return errorInClaims;
    }

    public JsonArray getInputArray() {
        return inputArray;
    }

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


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

    public void setInputArray(JsonArray inputArray) {
        this.inputArray = inputArray;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getUser() {
        return user;
    }

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

    public boolean isOld() {
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//        String strDate = "2014-10-28";
        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, -1);
        Date yesterday = calendar.getTime();

        return !yesterday.before(this.createdAt);
    }

}
