package legion.muyue.best2048.data;

/**
 * Représente une requête pour effectuer un mouvement dans le jeu 2048.
 * Cette classe est typiquement utilisée comme un objet de transfert de données (DTO)
 * pour envoyer l'action d'un joueur (la direction du mouvement) au serveur ou
 * au moteur de jeu.
 * Elle contient l'identifiant du joueur effectuant le mouvement et la direction choisie.
 */
public class MoveRequest {

    /**
     * La direction du mouvement demandé.
     * Par exemple : "UP", "DOWN", "LEFT", "RIGHT".
     * La casse et les valeurs exactes dépendent de la convention utilisée par le système.
     * Ce champ est destiné à être sérialisé (par exemple en JSON) pour la communication.
     */
    private String direction;

    /**
     * L'identifiant unique du joueur qui effectue le mouvement.
     * Permet au système de savoir quel joueur est à l'origine de la requête.
     * Ce champ est destiné à être sérialisé (par exemple en JSON) pour la communication.
     */
    private String playerId;

    /**
     * Construit une nouvelle requête de mouvement.
     *
     * @param direction La direction souhaitée pour le mouvement (ex: "UP", "DOWN", "LEFT", "RIGHT").
     * Ne doit généralement pas être null ou vide.
     * @param playerId  L'identifiant du joueur effectuant la requête.
     * Ne doit généralement pas être null ou vide.
     */
    public MoveRequest(String direction, String playerId) {
        this.direction = direction;
        this.playerId = playerId;
    }
}