Source: backend/models/modelUser.js

/**
 * @fileoverview Diese Datei enthält die Definition der User-Klasse.
 * Sie ermöglicht die Erstellung und Validierung von Benutzerobjekten.
 * 
 * @author Ayoub
 * @module modelUser
 */

/**
 * Repräsentiert einen Benutzer mit Benutzername, E-Mail und Passwort.
 * 
 * @class User
 * @property {string} username - Der Benutzername des Users.
 * @property {string} email - Die E-Mail-Adresse des Users.
 * @property {string} password - Das Passwort des Users.
 */
class User {

    /**
     * Erstellt eine neue Instanz eines Benutzers.
     * 
     * @constructor
     * @param {string} username - Der Benutzername.
     * @param {string} email - Die E-Mail-Adresse.
     * @param {string} password - Das Passwort.
     */
    constructor(username, email, password) {
        this.username = username;
        this.email = email;
        this.password = password;
    }

    /**
 * Überprüft, ob alle erforderlichen Felder (`username`, `email`, `password`) vorhanden sind.
 * 
 * @method validate
 * @memberof User
 * @throws {Error} Falls ein erforderliches Feld fehlt.
 * @example
 * const user = new User("testuser", "test@example.com", "securepassword");
 * user.validate(); // Kein Fehler
 */
    validate() {
        if (!this.username || !this.email || !this.password) {
            throw new Error('Username, email, and password are required');
        }


    }
}

module.exports = User;