package org.wso2.carbon.device.mgt.ios.dep.beans;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * This class represents the Apple DEP device details retrieving information.
 * The variables in this class are not camel case.
 * Because JSON object returned as a response from Apple DEP portal is directly mapped to this
 * class using Gson. So the variable names are mapped as keys for the key value pairs in the
 * JSON object.
 * The variables are declared as per the documentation of Apple DEP.
 */
@ApiModel(value = "DeviceDetailsFilter", description = "This class carries information " +
                                                       "related to all devices that are assigned " +
                                                       "to the Apple DEP Portal.")
public class Device implements Serializable {

    private static final long serialVersionUID = 473212900231987436L;

    @ApiModelProperty(
            name = "fetched_until",
            value = "A date stamp indicating the progress of the device fetch request",
            required = false)
    private String fetched_until;

    @ApiModelProperty(
            name = "more_to_follow",
            value = "Indicates whether there are more devices available to be retrieved.",
            required = false)
    private String more_to_follow;

    @ApiModelProperty(
            name = "cursor",
            value = "A hex string returned by a previous request that represents the starting " +
                    "position for a request",
            required = false)
    private String cursor;

    @ApiModelProperty(
            name = "count",
            value = "Total number of devices",
            required = false)
    private String count;

    @ApiModelProperty(
            name = "devices",
            value = "An array of string providing information about devices.",
            required = false)
    private DeviceDetails[] devices;

    public String getFetchedUntil() {
        return fetched_until;
    }

    public void setFetchedUntil(String fetched_until) {
        this.fetched_until = fetched_until;
    }

    public String getMoreToFollow() {
        return more_to_follow;
    }

    public void setMoreToFollow(String more_to_follow) {
        this.more_to_follow = more_to_follow;
    }

    public String getCursor() {
        return cursor;
    }

    public void setCursor(String cursor) {
        this.cursor = cursor;
    }

    public DeviceDetails[] getDevices() {
        return devices;
    }

    public void setDevices(DeviceDetails[] devices) {
        this.devices = devices;
    }
}
