package dst.ass3.messaging;

import java.util.Objects;

/**
 * Message sent by a worker after it is finished processing a request.
 */
public class WorkerResponse {

    /**
     * The ID of the original {@link UploadRequest}.
     */
    private String requestId;

    /**
     * The time it took to process the request (in milliseconds).
     */
    private Long processingTime;

    public String getRequestId() {
        return requestId;
    }

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

    public Long getProcessingTime() {
        return processingTime;
    }

    public void setProcessingTime(Long processingTime) {
        this.processingTime = processingTime;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        WorkerResponse that = (WorkerResponse) o;
        return Objects.equals(requestId, that.requestId) &&
                Objects.equals(processingTime, that.processingTime);
    }

    @Override
    public int hashCode() {
        return Objects.hash(requestId, processingTime);
    }

    @Override
    public String toString() {
        return "WorkerResponse{" +
                "requestId='" + requestId + '\'' +
                ", processingTime=" + processingTime +
                '}';
    }
}
