`package com.masai.model;
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Data
//@Table(name = "users")
public class User {
// {
// "email": "[email protected]",
// "firstName": "Saksham",
// "lastName": "Singh",
// "mobileNumber": "7987126495",
// "dateOfBirth": "1998-11-12",
// "username": "imsaksham9",
// "password": "sak@123"
// }
@Id
@Column(name = "email", unique = true)
@Email
private String email;
@NotNull
@NotBlank
@Pattern(regexp = "^[a-zA-Z]+$", message = "First name must not contain numbers or special characters")
private String firstName;
@NotNull
@NotBlank
@Pattern(regexp = "^[a-zA-Z]+$", message = "Last name must not contain numbers or special characters")
private String lastName;
@NotNull
@NotBlank
@Size(min = 3, max = 20)
@Pattern(regexp = "^[a-zA-Z0-9]+$", message = "Please input a valid username which contain lowercase character and length should be minimum 3 and maximum 20")
private String username;
@NotNull
@NotBlank
@Pattern(regexp = "^[0-9]{10}$", message = "Mobile number must have 10 digits")
private String mobileNumber;
@NotNull
@PastOrPresent
private LocalDate dateOfBirth;
@NotNull
@NotBlank
@Pattern(regexp = "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{6,12}$", message = "Password must be alphanumeric and must contain 6-12 characters having at least one special character, one upper case, one lowercase, and one digit.")
private String password;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
List<Email> emails = new ArrayList<>();
}
`