package pl.sudra.domain; import jakarta.persistence.*; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column(unique = true) @NotNull @NotBlank(message = "Username is required") @Size(message = "Username must be between 5 and 20 characters", min = 5, max = 20) private String username; // @JsonIgnore @NotNull @NotBlank(message = "Password is required") private String password; @Column(unique = true) @NotNull @NotBlank(message = "Email is required") @Email(regexp = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$", message = "Invalid email address") private String email; // @NotNull // @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) private String role; @NotNull private boolean enabled = false; public void setRole(String role) { this.role = role; } public boolean isEnabled() { return enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } // @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user") // private List reservations; // public void setReservations(Collection reservations) { // this.reservations = (List) reservations; // } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + ", role=" + role + // ", reservations=" + reservations + '}'; } public String getRolesForToken() { return role; } public User() { } // public User(Long id, String username, String password, String email, String role) { // this.id = id; // this.username = username; // this.password = password; // this.email = email; // this.role = role; // } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getRole() { return role; } // public void setRole(String role) { // this.role = role; // } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } // public List getReservations() { // return reservations; // } // public void setReservations(List reservations) { // this.reservations = reservations; // } }