63 lines
1.4 KiB
Java
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;
|
|
}
|
|
|
|
}
|