Server/src/main/java/de/towerdefence/server/player/Player.java

39 lines
928 B
Java
Raw Normal View History

2025-02-11 11:32:44 +01:00
package de.towerdefence.server.player;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
2025-03-12 12:01:47 +01:00
import lombok.*;
2025-02-11 11:32:44 +01:00
import jakarta.persistence.*;
2025-03-12 12:01:47 +01:00
import org.hibernate.annotations.ColumnDefault;
2025-02-11 11:32:44 +01:00
@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;
2025-02-11 11:32:44 +01:00
@Id
2025-02-11 13:32:36 +01:00
@GeneratedValue(strategy=GenerationType.IDENTITY)
2025-02-11 11:32:44 +01:00
private Long id;
@NotNull
@Column(unique = true)
private String username;
@NotNull
@Size(min = PASSWORD_HASH_BYTE_LENGTH, max = PASSWORD_HASH_BYTE_LENGTH)
2025-02-11 11:32:44 +01:00
private byte[] passwordHash;
@NotNull
@Size(min = PASSWORD_SALT_BYTE_LENGTH, max = PASSWORD_SALT_BYTE_LENGTH)
2025-02-11 11:32:44 +01:00
private byte[] passwordSalt;
2025-03-12 12:01:47 +01:00
@NotNull
@ColumnDefault("false")
private boolean banned;
2025-02-11 11:32:44 +01:00
}