package com.example.nto.entity; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import javax.persistence.*; import java.time.LocalDateTime; import java.util.Collection; import java.util.List; import java.util.Set; @Data @Entity @Builder @NoArgsConstructor @AllArgsConstructor @Table(name = "Employee") public class Employee implements UserDetails { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @Column(name = "login") private String login; @Column(name = "name") private String name; @Column(name = "password") private String password; @ManyToOne @JoinColumn(name = "authority_id") @JsonIgnore private Authority authority; @ManyToOne @JoinColumn(name = "credentials") @JsonIgnore private Credentials credentials; @Column(name = "photo") private String photo; @ManyToMany(fetch = FetchType.EAGER) private Set authorities; @Column(name = "position") private String position; @Column(name = "lastVisit") private LocalDateTime lastVisit; @Override public Collection getAuthorities() { return List.of(); } @Override public String getUsername() { return ""; } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return true; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return true; } }