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 tokens = new HashMap<>(); public User(final @NonNull UserCreate create, final @NonNull String password) { this.username = create.getUsername(); this.password = password; } }