Data2025/src/main/java/de/ph87/data/user/User.java
2025-09-14 22:40:08 +02:00

63 lines
1.4 KiB
Java

package de.ph87.data.user;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.Setter;
import lombok.ToString;
import java.time.ZonedDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@Entity
@Getter
@Table(name = "`user`")
@ToString(onlyExplicitlyIncluded = true)
@NoArgsConstructor
public class User {
@Id
@ToString.Include
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Version
@ToString.Include
private long version;
@NonNull
@ToString.Include
@Column(nullable = false, unique = true)
private String uuid = UUID.randomUUID().toString();
@NonNull
@ToString.Include
@Column(nullable = false, unique = true)
private String username;
@Setter
@NonNull
@Column(nullable = false)
private String password;
@NonNull
@ElementCollection
private Map<String, ZonedDateTime> tokens = new HashMap<>();
public User(final @NonNull UserCreate create, final @NonNull String password) {
this.username = create.getUsername();
this.password = password;
}
}