package eu.project.rapid.dtos;

public class DeviceDTO {

    private Long id;

    private String ip;
    private int totalMemory;
    private double remainingMemory;
    private double remainingBattery;
    private double processorSpeed;
    private double processorFree;
    private Long currencyUnitsAvailable;
    private double networkBandWidthAvailable;
    private DeviceMode deviceMode;

    private double alpha = 0.33;
    private double beta = 0.33;
    private double gamma = 0.33;

    public Long getId() {
        return id;
    }

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

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public int getTotalMemory() {
        return totalMemory;
    }

    public void setTotalMemory(int totalMemory) {
        this.totalMemory = totalMemory;
    }

    public double getRemainingMemory() {
        return remainingMemory;
    }

    public void setRemainingMemory(double remainingMemory) {
        this.remainingMemory = remainingMemory;
    }

    public double getRemainingBattery() {
        return remainingBattery;
    }

    public void setRemainingBattery(double remainingBattery) {
        this.remainingBattery = remainingBattery;
    }

    public double getProcessorSpeed() {
        return processorSpeed;
    }

    public void setProcessorSpeed(double processorSpeed) {
        this.processorSpeed = processorSpeed;
    }

    public double getProcessorFree() {
        return processorFree;
    }

    public void setProcessorFree(double processorFree) {
        this.processorFree = processorFree;
    }

    public Long getCurrencyUnitsAvailable() {
        return currencyUnitsAvailable;
    }

    public void setCurrencyUnitsAvailable(Long currencyUnitsAvailable) {
        this.currencyUnitsAvailable = currencyUnitsAvailable;
    }

    public double getNetworkBandWidthAvailable() {
        return networkBandWidthAvailable;
    }

    public void setNetworkBandWidthAvailable(double networkBandWidthAvailable) {
        this.networkBandWidthAvailable = networkBandWidthAvailable;
    }

    public DeviceMode getDeviceMode() {
        return deviceMode;
    }

    public void setDeviceMode(DeviceMode deviceMode) {
        this.deviceMode = deviceMode;
    }

    public double getAlpha() {
        return alpha;
    }

    public void setAlpha(double alpha) {
        this.alpha = alpha;
    }

    public double getBeta() {
        return beta;
    }

    public void setBeta(double beta) {
        this.beta = beta;
    }

    public double getGamma() {
        return gamma;
    }

    public void setGamma(double gamma) {
        this.gamma = gamma;
    }

    @Override
    public String toString() {
        return "{\n" +
                "    \"id\":" + getId() + ",\n" +
                "    \"ip\":" + getIp() + ",\n" +
                "    \"totalMemory\":" + getTotalMemory() + ",\n" +
                "    \"remainingMemory\":" + getRemainingMemory() + ",\n" +
                "    \"remainingBattery\":" + getRemainingBattery() + ",\n" +
                "    \"processorSpeed\":" + getProcessorSpeed() + ",\n" +
                "    \"processorFree\":" + getProcessorFree() + ",\n" +
                "    \"currencyUnitsAvailable\":" + getCurrencyUnitsAvailable() + ",\n" +
                "    \"networkBandWidthAvailable\":" + getNetworkBandWidthAvailable() + ",\n" +
                "    \"deviceMode\":" + getDeviceMode() + ",\n" +
                "}";
    }

}
