package com.eactive.testmaster.loadtest.entity;

import com.eactive.testmaster.client.entity.ApiScenario;
import com.eactive.testmaster.user.entity.StaffUser;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "LOAD_TEST")
public class LoadTest {

    @Id
    private String id;

    private String name;

    private String description;

    @ManyToOne
    @JoinColumn(name = "USER_ID")
    private StaffUser owner;

    @ManyToOne
    @JoinColumn(name = "API_SCENARIO_ID")
    private ApiScenario scenario;

    private int threadCount; //min 1

    private int loopCount; //0 means infinite

    private int rampUpTime; //in milliseconds

    private int duration; //in minutes

    private String status; //Running, Completed, Stopped, Waiting

    private String testData; //csv format, first row is header

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public StaffUser getOwner() {
        return owner;
    }

    public void setOwner(StaffUser owner) {
        this.owner = owner;
    }

    public ApiScenario getScenario() {
        return scenario;
    }

    public void setScenario(ApiScenario scenario) {
        this.scenario = scenario;
    }

    public int getThreadCount() {
        return threadCount;
    }

    public void setThreadCount(int threadCount) {
        this.threadCount = threadCount;
    }

    public int getLoopCount() {
        return loopCount;
    }

    public void setLoopCount(int loopCount) {
        this.loopCount = loopCount;
    }

    public int getRampUpTime() {
        return rampUpTime;
    }

    public void setRampUpTime(int rampUpTime) {
        this.rampUpTime = rampUpTime;
    }

    public int getDuration() {
        return duration;
    }

    public void setDuration(int duration) {
        this.duration = duration;
    }

    public String getStatus() {
        return status;
    }

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

    public String getTestData() {
        return testData;
    }

    public void setTestData(String testData) {
        this.testData = testData;
    }
}
