Files
velocity-pay-springboot/src/main/java/zw/qantra/tm/domain/models/User.java
2026-06-12 22:33:58 +02:00

79 lines
2.0 KiB
Java

package zw.qantra.tm.domain.models;
import jakarta.persistence.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.SQLRestriction;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.Collection;
import java.util.List;
@Entity
@Table(name = "users", indexes = {
@Index(name = "idx_user_phone", columnList = "phone"),
})
@Data
@EqualsAndHashCode(callSuper = true)
@SQLRestriction("deleted = false")
public class User extends BaseEntity implements UserDetails {
@Column(unique = true, nullable = false)
private String username;
@Column(nullable = false)
private String password;
@Column(unique = true, nullable = false)
private String email;
private String phone;
private String erpCustomerRef;
private String photoUrl;
private Long workflowId;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "is_enabled")
private boolean enabled = true;
@Column(name = "is_account_non_expired")
private boolean accountNonExpired = true;
@Column(name = "is_account_non_locked")
private boolean accountNonLocked = true;
@Column(name = "is_credentials_non_expired")
private boolean credentialsNonExpired = true;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return List.of(new SimpleGrantedAuthority("ROLE_USER"));
}
@Override
public boolean isAccountNonExpired() {
return accountNonExpired;
}
@Override
public boolean isAccountNonLocked() {
return accountNonLocked;
}
@Override
public boolean isCredentialsNonExpired() {
return credentialsNonExpired;
}
@Override
public boolean isEnabled() {
return enabled;
}
}