content: package io.aharoj.barbershop_backend.modules.auth.model.entity;
  
  import java.util.Set;
  
  import jakarta.persistence.*;
  
  @Entity
  @Table(name = "users", uniqueConstraints = {
      @UniqueConstraint(columnNames = "username"),
      @UniqueConstraint(columnNames = "email")
  })
  public class User {
  
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
  
    @Column(unique = true, nullable = false, length = 50)
    private String username;
  
    @Column(unique = true, nullable = false, length = 100)
    private String email;
  
    @Column(nullable = false, length = 225)
    private String password;
  
    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(
      name = "user_role", 
      joinColumns = @JoinColumn(name = "user_id"), 
      inverseJoinColumns = @JoinColumn(name = "role_id")
      )
    private Set<Role> roles;
  
    public User() {
    }
  
    public User(String username, String email, String password) {
      this.username = username;
      this.email = email;
      this.password = password;
    }
  
    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 getPassword() {
      return password;
    }
  
    public void setPassword(String password) {
      this.password = password;
    }
  
    public Set<Role> getRoles() {
      return roles;
    }
  
    public void setRoles(Set<Role> roles) {
      this.roles = roles;
    }
  }
  