package de.towerdefence.server.player; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.*; import jakarta.persistence.*; import org.hibernate.annotations.ColumnDefault; @NoArgsConstructor @AllArgsConstructor @Getter @Setter @Entity @Table(name = "player") public class Player { public static final int PASSWORD_SALT_BYTE_LENGTH = 16; public static final int PASSWORD_HASH_BYTE_LENGTH = 64; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @NotNull @Column(unique = true) private String username; @NotNull @Size(min = PASSWORD_HASH_BYTE_LENGTH, max = PASSWORD_HASH_BYTE_LENGTH) private byte[] passwordHash; @NotNull @Size(min = PASSWORD_SALT_BYTE_LENGTH, max = PASSWORD_SALT_BYTE_LENGTH) private byte[] passwordSalt; @NotNull @ColumnDefault("false") private boolean banned; }