package com.example.app.entities; import java.util.Set; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.JoinTable; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; @Table(name = "user_accounts") @Entity @Builder @Getter @Setter @ToString @NoArgsConstructor @AllArgsConstructor public class UserAccount { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "email", nullable = false, unique = true) private String email; @Column(name = "password_hash", nullable = false) private String passwordHash; @ManyToMany @JoinTable(name = "user_account_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id")) private Set roles; }