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 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 = "DeviceDetails", description = "This class carries information related to " +
                                                 "details of the enrolled devices in " +
                                                 "Apple DEP Portal.")
public class DeviceDetails implements Serializable {

    private static final long serialVersionUID = 478912390765239012L;

    @ApiModelProperty(
            name = "serial_number",
            value = "Serial number of the device.",
            required = false)
    private String serial_number;

    @ApiModelProperty(
            name = "model",
            value = "Model of the device.",
            required = false)
    private String model;

    @ApiModelProperty(
            name = "description",
            value = "Description of the device",
            required = false)
    private String description;

    @ApiModelProperty(
            name = "color",
            value = "Color of the device",
            required = false)
    private String color;

    @ApiModelProperty(
            name = "asset_tag",
            value = "Asset tag of the device (if provided by Apple).",
            required = false)
    private String asset_tag;

    @ApiModelProperty(
            name = "profile_status",
            value = "Profile status of the device.",
            required = false)
    private String profile_status;

    @ApiModelProperty(
            name = "id",
            value = "Profile ID of the device in the database.",
            required = false)
    private String id;

    @ApiModelProperty(
            name = "profile_uuid",
            value = "Profile ID of the device assigned by Apple.",
            required = false)
    private String profile_uuid;

    @ApiModelProperty(
            name = "profile_assign_time",
            value = "Profile assigned time of the device.",
            required = false)
    private String profile_assign_time;

    @ApiModelProperty(
            name = "profile_push_time",
            value = "Profile pushed time of the device.",
            required = false)
    private String profile_push_time;

    @ApiModelProperty(
            name = "device_assigned_date",
            value = "Device assigned time to the Apple DEP Portal.",
            required = false)
    private String device_assigned_date;

    @ApiModelProperty(
            name = "device_assigned_by",
            value = "The name of the person who assigned the device to the Apple DEP portal.",
            required = false)
    private String device_assigned_by;

    @ApiModelProperty(
            name = "os",
            value = "Operating system of the device",
            required = false)
    private String os;

    @ApiModelProperty(
            name = "device_family",
            value = "Device Family",
            required = false)
    private String device_family;

    public String getOs() {
        return os;
    }

    public void setOs(String os) {
        this.os = os;
    }

    public String getDeviceFamily() {
        return device_family;
    }

    public void setDeviceFamily(String device_family) {
        this.device_family = device_family;
    }

    public String getSerialNumber() {
        return serial_number;
    }

    public void setSerialNumber(String serial_number) {
        this.serial_number = serial_number;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getDescription() {
        return description;
    }

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

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getAssetTag() {
        return asset_tag;
    }

    public void setAssetTag(String asset_tag) {
        this.asset_tag = asset_tag;
    }

    public String getProfileStatus() {
        return profile_status;
    }

    public void setProfileStatus(String profile_status) {
        this.profile_status = profile_status;
    }

    public String getProfileUuid() {
        return profile_uuid;
    }

    public void setProfileUuid(String profile_uuid) {
        this.profile_uuid = profile_uuid;
    }

    public String getProfileAssignTime() {
        return profile_assign_time;
    }

    public void setProfileAssignTime(String profile_assign_time) {
        this.profile_assign_time = profile_assign_time;
    }

    public String getProfilePushTime() {
        return profile_push_time;
    }

    public void setProfilePushTime(String profile_push_time) {
        this.profile_push_time = profile_push_time;
    }

    public String getDeviceAssignedDate() {
        return device_assigned_date;
    }

    public void setDeviceAssignedDate(String device_assigned_date) {
        this.device_assigned_date = device_assigned_date;
    }

    public String getDeviceAssignedBy() {
        return device_assigned_by;
    }

    public void setDeviceAssignedBy(String device_assigned_by) {
        this.device_assigned_by = device_assigned_by;
    }

    public String getId() {
        return id;
    }

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