package parkup.entities; import javax.persistence.*; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import parkup.data.Plate; import parkup.data.enumarations.UserRole; import java.util.Collection; import java.util.Collections; @Entity @Table(name = "guest") public class Guest implements UserDetails { @Id @SequenceGenerator( name="guest_sequence_generator", sequenceName = "guest_sequence", allocationSize = 1, initialValue = 400 ) @GeneratedValue( //za postgres treba sequence da se namesti i ime na generator mi ga davamo kako od gore sto e strategy = GenerationType.SEQUENCE, generator = "guest_sequence_generator" ) @Column(name = "guestId") private int guestId; //dali ova treba vaka? @OneToOne @JoinColumn(name = "tablickaId", nullable = false) private Plate plate; @Column(name = "email") private String email; @Column(name = "mobile") private String mobile; @OneToOne private ParkingSession session; @Enumerated private UserRole role; public Guest() {this.role=UserRole.ROLE_USER;} public Guest(int guestId, Plate plate, String email, String mobile) { this.guestId = guestId; this.plate = plate; this.email = email; this.mobile = mobile; this.role=UserRole.ROLE_USER; } public Guest(Plate plate, String email, String mobile) { this.plate = plate; this.email = email; this.mobile = mobile; this.role=UserRole.ROLE_USER; } public int getGuestId() { return guestId; } public void setGuestId(int guestId) { this.guestId = guestId; } public Plate getTablicka() { return plate; } public void setTablicka(Plate plate) { this.plate = plate; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public ParkingSession getSession() { return session; } public void setSession(ParkingSession session) { this.session = session; } public UserRole getRole() { return role; } public void setRole(UserRole role) { this.role = role; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } @Override public Collection getAuthorities() { SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role.name()); return Collections.singleton(authority); } @Override public String getPassword() { return null; } @Override public String getUsername() { return Integer.toString(guestId); } @Override public boolean isAccountNonExpired() { return false; } @Override public boolean isAccountNonLocked() { return false; } @Override public boolean isCredentialsNonExpired() { return false; } @Override public boolean isEnabled() { return false; } }