package kz.arta.synergy.workflow.mobile.android.authorization;

import android.accounts.Account;

import kz.arta.synergy.workflow.mobile.android.common.models.Person;

/**
 * Created by neox on 10.07.14.
 * Данные которые хранятся в менеджере аккаунтов
 */
public class SynergyAccount extends Account {

    /**
     * Идентификатор токена приложения
     */
    public static final String EXTRA_TOKEN_TYPE = "kz.arta.synergy.workflow.mobile.android.EXTRA_TOKEN_TYPE";

    /**
     * Идентификатор приложения
     */
    public static final String TYPE = "kz.arta.synergy.workflow.mobile.android";

    /**
     * Полный адрес сервера
     */
    public static final String HOST = "HOST";

    /**
     * Неполный адрес сервера
     */
    public static final String SHORT_HOST = "SHORT_HOST";

    /**
     * Имя сервера
     */
    public static final String SERVER_NAME = "SERVER_NAME";

    /**
     * Логин
     */
    public static final String LOGIN = "LOGIN";

    /**
     * Идентификатор пользователя
     */
    public static final String USER_ID = "USER_ID";

    /**
     * Имя
     */
    public static final String FIRSTNAME = "FIRSTNAME";

    /**
     * Фамилия
     */
    public static final String LASTNAME = "LASTNAME";

    /**
     * Используется ли авторизация через файл
     */
    public static final String FILE_AUTH = "FILE_AUTH";

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

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

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

    /**
     * Упрощенный хост
     */
    private String shortHost;

    /**
     * Идентификатор пользователя
     */
    private String userID;

    /**
     * Имя пользователя
     */
    private String firstName;

    /**
     * Фамилия пользователя
     */
    private String lastName;

    public SynergyAccount(String name) {
        super(name, TYPE);
    }

    /**
     * Метод возвращает аккаунт пользователя в системе из объекта person
     *
     * @param person данные пользователя
     * @return SynergyAccount
     */
    public static SynergyAccount getSynergyAccount(Person person) {
        SynergyAccount synergyAccount = new SynergyAccount(SynergyAccount.TYPE);
        synergyAccount.setLogin(person.getLogin());
        synergyAccount.setHost(person.getHost());
        synergyAccount.setShortHost(person.getShortHost());
        synergyAccount.setPassword(person.getPassword());
        synergyAccount.setUserID(person.getUuid());
        synergyAccount.setFirstName(person.getFirstname());
        synergyAccount.setLastName(person.getLastname());
        return synergyAccount;
    }

    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 getUserID() {
        return userID;
    }

    public void setUserID(String userID) {
        this.userID = userID;
    }

    public String getShortHost() {
        return shortHost;
    }

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

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}
