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

import com.google.gson.annotations.SerializedName;

import java.io.Serializable;

import kz.arta.synergy.workflow.mobile.android.documents.resolution.models.ResolutionWorkType;

/**
 * Created by neox on 15.04.14.
 * Настройки приложения
 */
public class Settings implements Serializable {

    /**
     * Отображать ли автора при создании работы
     */
    private
    @SerializedName("display_author_input")
    String displayAuthorInput;

    /**
     * Показывать ли всех пользователей при открытии юзерчузера
     */
    private
    @SerializedName("allow_add_work_responsibles")
    String allowAddWorkResponsibles;

    /**
     * Доступен ли переключатель "добавить подпись" при завершении работы
     */
    private
    @SerializedName("docflow_demand_sign_before_assign")
    String docflowDemandSignBeforeAssign;

    /**
     * Формы завершения
     */
    private
    @SerializedName("work_completion_forms")
    CompletionFormItem[] workCompletionForms;

    /**
     * Лейбл для "Отписано"
     */
    private
    @SerializedName("signed_off")
    String signedOff;

    /**
     * Текущие приоритеты в системе
     */
    private
    @SerializedName("current_priorities")
    PriorityItem[] currentPriorities;

    /**
     * Все существующие приоритеты в системе
     */
    private
    @SerializedName("all_priorities")
    PriorityItem[] allPriorities;

    /**
     * Максимальная дата завершения резолюции по документу
     */
    private
    @SerializedName("date_resolution_after_finish_document")
    String dateResolutionAfterFinishDocument;

    /**
     * Ставить работы исполнителям от имени ответственного
     */
    private
    @SerializedName("set_work_from_responsible")
    String setWorkFromResponsible;

    /**
     * Разрешено ли передавать работы другим пользователям
     */
    private
    @SerializedName("allow_resend_work")
    String allowResendWork;

    /**
     * Список существующих диалогов в системе
     */
    private
    @SerializedName("dialogs")
    DialogItem[] dialogs;

    /**
     * Пункты меню создания (потоки работ)
     */
    private
    @SerializedName("work_items")
    MenuItem[] workItems;

    /**
     * Пункты меню создания (документы)
     */
    private
    @SerializedName("document_items")
    MenuItem[] documentItems;

    /**
     * Пункты меню создания (документы)
     */
    private
    @SerializedName("file_items")
    MenuItem[] fileItems;

    /**
     * Пункты меню создания (реестры)
     */
    private
    @SerializedName("registry_items")
    MenuItem[] registryItems;

    /**
     * Длительность рабочего дня
     */
    private
    @SerializedName("day_length")
    String dayLength;

    /**
     * Дата по умолчанию
     */
    private
    @SerializedName("default_length")
    DefaultLength defaultLength;

    /**
     * Типы процессов для резолюций
     */
    private
    @SerializedName("resolution_work_types")
    ResolutionWorkType[] resolutionWorkType;

    /**
     * Имя системы
     */
    private String systemName;

    /**
     * Необходимо ли вводить сертификат
     */
    private boolean needCert;

    /**
     * Доступно ли ЭЦП на сервере
     */
    private boolean enableEDS;

    public String getDisplayAuthorInput() {
        return displayAuthorInput;
    }

    public String getAllowAddWorkResponsibles() {
        return allowAddWorkResponsibles;
    }

    public String getDocflowDemandSignBeforeAssign() {
        return docflowDemandSignBeforeAssign;
    }

    public CompletionFormItem[] getWorkCompletionForms() {
        return workCompletionForms;
    }

    public String getSignedOff() {
        return signedOff;
    }

    public PriorityItem[] getCurrentPriorities() {
        return currentPriorities;
    }

    public PriorityItem[] getAllPriorities() {
        return allPriorities;
    }

    public String getDateResolutionAfterFinishDocument() {
        return dateResolutionAfterFinishDocument;
    }

    public String getSetWorkFromResponsible() {
        return setWorkFromResponsible;
    }

    public String getAllowResendWork() {
        return allowResendWork;
    }

    public DialogItem[] getDialogs() {
        return dialogs;
    }

    public MenuItem[] getWorkItems() {
        return workItems;
    }

    public MenuItem[] getDocumentItems() {
        return documentItems;
    }

    public MenuItem[] getFileItems() {
        return fileItems;
    }

    public MenuItem[] getRegistryItems() {
        return registryItems;
    }

    public void setRegistryItems(MenuItem[] registryItems) {
        this.registryItems = registryItems;
    }

    public String getDayLength() {
        return dayLength;
    }

    public DefaultLength getDefaultLength() {
        return defaultLength;
    }

    public ResolutionWorkType[] getResolutionWorkType() {
        return resolutionWorkType;
    }

    public String getSystemName() {
        return systemName;
    }

    public boolean isNeedCert() {
        return needCert;
    }

    public boolean isEnableEDS() {
        return enableEDS;
    }
}
