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 synced device details.
 * 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 = "DevicesWithSyncInfo", description = "This class carries information related " +
                                                       "synced device details.")
public class DevicesWithSyncInfo implements Serializable {

    private static final long serialVersionUID = 479001023678324601L;

    @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 = "devices",
            value = "An array of string providing information about devices.",
            required = false)
    private DeviceDetailsWithSyncInfo[] 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 DeviceDetailsWithSyncInfo[] getDevices() {
        return devices;
    }

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