// Path: rock-paper-scissors-lizard-spock/src/main/java/be/ordina/jworks/rpsls/game/Game.java
// @Getter
// @Setter
// @Builder
// @RedisHash(value = "games", timeToLive = 1800)
// @AllArgsConstructor
// public class Game implements Comparable<Game>, Serializable {
// 
//     @Id
//     @Indexed
//     private String id;
// 
//     private LocalDateTime start;
//     private LocalDateTime end;
//     private String playerOne;
//     private String playerOneImage;
//     private int playerOneMove;
//     private String playerTwo;
//     private String playerTwoImage;
//     private int playerTwoMove;
// 
//     @JsonIgnore
//     public LocalDateTime getStart() {
//         return this.start;
//     }
// 
//     @JsonIgnore
//     public LocalDateTime getEnd() {
//         return this.end;
//     }
// 
//     @Override
//     public int compareTo(Game that) {
//         if (this.start.compareTo(that.start) > 0) {
//             return -1;
//         } else if (this.start.compareTo(that.start) < 0) {
//             return 1;
//         }
//         return 0;
//     }
// }
// 
// Path: rock-paper-scissors-lizard-spock/src/main/java/be/ordina/jworks/rpsls/game/GameEvent.java
// public enum GameEvent implements Serializable {
// 
//     SPECTATOR_JOINED(0),
//     PLAYER_ONE_JOINED(0),
//     PLAYER_TWO_JOINED(0),
//     PLAYER_ONE_WINS(0),
//     PLAYER_TWO_WINS(0),
//     GAME_TIED(0),
//     NO_WINNER_YET(0),
//     PLAYER_ONE_ROCK(1),
//     PLAYER_ONE_PAPER(2),
//     PLAYER_ONE_SCISSORS(3),
//     PLAYER_ONE_LIZARD(4),
//     PLAYER_ONE_SPOCK(5),
//     PLAYER_TWO_ROCK(1),
//     PLAYER_TWO_PAPER(2),
//     PLAYER_TWO_SCISSORS(3),
//     PLAYER_TWO_LIZARD(4),
//     PLAYER_TWO_SPOCK(5);
// 
//     private int value;
// 
//     GameEvent(final int value) {
//         this.value = value;
//     }
// 
//     public int value() {
//         return this.value;
//     }
// 
// }


import be.ordina.jworks.rpsls.game.Game;
import be.ordina.jworks.rpsls.game.GameEvent;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
package be.ordina.jworks.rpsls.game.websocket;



@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GameMessage implements Serializable {

    private Game game;

// Path: rock-paper-scissors-lizard-spock/src/main/java/be/ordina/jworks/rpsls/game/Game.java
// @Getter
// @Setter
// @Builder
// @RedisHash(value = "games", timeToLive = 1800)
// @AllArgsConstructor
// public class Game implements Comparable<Game>, Serializable {
// 
//     @Id
//     @Indexed
//     private String id;
// 
//     private LocalDateTime start;
//     private LocalDateTime end;
//     private String playerOne;
//     private String playerOneImage;
//     private int playerOneMove;
//     private String playerTwo;
//     private String playerTwoImage;
//     private int playerTwoMove;
// 
//     @JsonIgnore
//     public LocalDateTime getStart() {
//         return this.start;
//     }
// 
//     @JsonIgnore
//     public LocalDateTime getEnd() {
//         return this.end;
//     }
// 
//     @Override
//     public int compareTo(Game that) {
//         if (this.start.compareTo(that.start) > 0) {
//             return -1;
//         } else if (this.start.compareTo(that.start) < 0) {
//             return 1;
//         }
//         return 0;
//     }
// }
// 
// Path: rock-paper-scissors-lizard-spock/src/main/java/be/ordina/jworks/rpsls/game/GameEvent.java
// public enum GameEvent implements Serializable {
// 
//     SPECTATOR_JOINED(0),
//     PLAYER_ONE_JOINED(0),
//     PLAYER_TWO_JOINED(0),
//     PLAYER_ONE_WINS(0),
//     PLAYER_TWO_WINS(0),
//     GAME_TIED(0),
//     NO_WINNER_YET(0),
//     PLAYER_ONE_ROCK(1),
//     PLAYER_ONE_PAPER(2),
//     PLAYER_ONE_SCISSORS(3),
//     PLAYER_ONE_LIZARD(4),
//     PLAYER_ONE_SPOCK(5),
//     PLAYER_TWO_ROCK(1),
//     PLAYER_TWO_PAPER(2),
//     PLAYER_TWO_SCISSORS(3),
//     PLAYER_TWO_LIZARD(4),
//     PLAYER_TWO_SPOCK(5);
// 
//     private int value;
// 
//     GameEvent(final int value) {
//         this.value = value;
//     }
// 
//     public int value() {
//         return this.value;
//     }
// 
// }


// Path: rock-paper-scissors-lizard-spock/src/main/java/be/ordina/jworks/rpsls/game/websocket/GameMessage.java
import be.ordina.jworks.rpsls.game.Game;
import be.ordina.jworks.rpsls.game.GameEvent;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;

package be.ordina.jworks.rpsls.game.websocket;



@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GameMessage implements Serializable {

    private Game game;

    private GameEvent event;