package kz.arta.synergy.workflow.mobile.android.common.models;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import kz.arta.synergy.workflow.mobile.android.common.models.settings.PriorityItem;
import kz.arta.synergy.workflow.mobile.android.common.models.settings.ProcessItem;
import kz.arta.synergy.workflow.mobile.android.common.models.settings.Settings;
import kz.arta.synergy.workflow.mobile.android.common.models.settings.WorkLoadItem;

/**
 * Created by neox on 06.04.14.
 * Текущий пользователь
 */
public class Person implements Serializable {

    /**
     * Логин
     */
    private String login;

    /**
     * Пароль
     */
    private String password;

    /**
     * Хост
     */
    private String host;

    /**
     * Неполный хост
     */
    private String shortHost;

    /**
     * UUID пользователя
     */
    private String uuid;

    /**
     * Имя текущего пользователя
     */
    private String lastname;

    /**
     * Фамилия текущего пользователя
     */
    private String firstname;

    /**
     * Существующие приоритеты в виде ключ-значение
     */
    private Map<String, PriorityItem> priorityItemHashMap = new HashMap<String, PriorityItem>();

    /**
     * Только используемые приоритеты
     */
    private Map<String, PriorityItem> currentPriorityItemHashMap = new HashMap<String, PriorityItem>();

    /**
     * Настройки приложения (rest/api/settings/get)
     */
    private Settings settings;

    /**
     * Дефолтные данные для создания работы (rest/api/workflow/create_defaults)
     */
    private CreateDefaults defaults;

    /**
     * Список процессов
     */
    private ProcessItem[] processes;

    /**
     * Нагрузка
     */
    private WorkLoadItem[] workLoads;

    public WorkLoadItem[] getWorkLoads() {
        return workLoads;
    }

    public void setWorkLoads(WorkLoadItem[] workLoads) {
        this.workLoads = workLoads;
    }

    public ProcessItem[] getProcesses() {
        return processes;
    }

    public void setProcesses(ProcessItem[] processes) {
        this.processes = processes;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public String getUuid() {
        return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public Map<String, PriorityItem> getPriorityItemHashMap() {
        return priorityItemHashMap;
    }

    public void setPriorityItemHashMap(Map<String, PriorityItem> priorityItemHashMap) {
        this.priorityItemHashMap = priorityItemHashMap;
    }

    public Map<String, PriorityItem> getCurrentPriorityItemHashMap() {
        return currentPriorityItemHashMap;
    }

    public void setCurrentPriorityItemHashMap(Map<String, PriorityItem> currentPriorityItemHashMap) {
        this.currentPriorityItemHashMap = currentPriorityItemHashMap;
    }

    public Settings getSettings() {
        return settings;
    }

    public void setSettings(Settings settings) {
        this.settings = settings;
    }

    public CreateDefaults getDefaults() {
        return defaults;
    }

    public void setDefaults(CreateDefaults defaults) {
        this.defaults = defaults;
    }

    public String getUserName() {
        return firstname + " " + lastname;
    }

    public String getAuth() {
        return getLogin() + ":" + getPassword();
    }

    public String getShortHost() {
        return shortHost;
    }

    public void setShortHost(String shortHost) {
        this.shortHost = shortHost;
    }
}
