package edu.whs.spin2018.baoapp.model;

/**
 * Modelliert einen Benutzer.
 */
public class Benutzer {

    public static final String DATEN_SEPERATOR = ":";
    /**
     * ID des Benutzers
     */
    private String id;

    /**
     * Nickname des Benutzers
     */
    private String benutzername;

    /**
     * Erstellt ein neues Objekt der Benutzer Klasse
     *
     * @param benutzername Nickname des Benutzers
     * @param id           ID des Benutzers
     */
    public Benutzer(String benutzername, String id) {
        this.benutzername = benutzername;
        this.id = id;
    }

    /**
     * Baut einen Benutzer aus einem String zusammen.
     *
     * @param benutzerAlsString - String mit den Benutzerdaten
     * @return Benutzer Objekt aus dem String
     */
    public static Benutzer vonString(String benutzerAlsString) {
        String[] komponenten = benutzerAlsString.split(DATEN_SEPERATOR);

        return new Benutzer(komponenten[0], komponenten[1]);
    }

    @Override
    public boolean equals(Object o) {
        return o instanceof Benutzer && (this.id.equals(((Benutzer) o).id) && this.benutzername.equals(((Benutzer) o).benutzername));
    }

    /**
     * Liefert die ID des Benutzers
     *
     * @return ID des Benutzers
     */
    public String gibUUID() {
        return this.id;
    }

    /**
     * Liefert den Nickname des Benutzers
     *
     * @return Nickname des Benutzers
     */
    public String gibBenutzernamen() {
        return this.benutzername;
    }

    @Override
    public String toString() {
        return benutzername + DATEN_SEPERATOR + id;
    }
}
