feat: added entity files and create Employee, Role entity (please, sorry for my English gays)
This commit is contained in:
parent
da4fe5439e
commit
6f49192b40
122
src/main/java/com/example/nto/domain/entity/Employee.java
Normal file
122
src/main/java/com/example/nto/domain/entity/Employee.java
Normal file
@ -0,0 +1,122 @@
|
||||
package com.example.nto.domain.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.data.annotation.CreatedDate;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table(name = "employees")
|
||||
public class Employee implements UserDetails {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private long id;
|
||||
|
||||
@Column(name = "name")
|
||||
@NotBlank(message = "Имя пользователя не может быть пустым!")
|
||||
@Size(max = 100, message = "Максимальная длина имени 100 символов!")
|
||||
private String name;
|
||||
|
||||
@Column(name = "surname")
|
||||
@NotBlank(message = "Фамилия пользователя не может быть пустой!")
|
||||
@Size(max = 100, message = "Максимальная длина фамилии 100 символов!")
|
||||
private String surname;
|
||||
|
||||
@Column(name = "patronymic")
|
||||
@Size(max = 100, message = "Максимальная длина отчества 100 символов!")
|
||||
private String patronymic;
|
||||
|
||||
@Column(name = "about_me")
|
||||
@Size(max = 300, message = "Максимальная длина поля 'О себе' 300 символов!")
|
||||
private String aboutMe;
|
||||
|
||||
@Column(name = "telephone", unique = true)
|
||||
@NotBlank(message = "Телефон не может быть пустым!")
|
||||
@Size(max = 20, message = "Максимальная длина телефонного номера 20 символов!")
|
||||
private String telephone;
|
||||
|
||||
@Column(name = "email", unique = true)
|
||||
@NotBlank(message = "Email не может быть пустым!")
|
||||
@Size(max = 255, message = "Максимальная длина email 255 символов")
|
||||
@Email(message = "Email адрес должен быть в формате user@example.com!")
|
||||
private String email;
|
||||
|
||||
@Column(name = "password")
|
||||
@NotBlank(message = "Пароль не может быть пустым!")
|
||||
@Size(max = 300, message = "Максимальная длина пароля 300 символов!")
|
||||
private String password;
|
||||
|
||||
// @ManyToOne(fetch = FetchType.EAGER)
|
||||
// @JoinColumn(name = "office_id", referencedColumnName = "id", nullable = false)
|
||||
// private Office office;
|
||||
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "pos_id", referencedColumnName = "id", nullable = false)
|
||||
private Position position;
|
||||
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "role_id", referencedColumnName = "id", nullable = false)
|
||||
private Role role;
|
||||
|
||||
@Column(name = "profile_image_url", nullable = false)
|
||||
@Size(max = 300, message = "Максимальная длина адреса изображения 300 символов!")
|
||||
private String profileImageUrl;
|
||||
|
||||
@CreatedDate
|
||||
@Column(name = "created_at", columnDefinition = "TIMESTAMP", nullable = false)
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
// @OneToMany(mappedBy = "employee")
|
||||
// private List<Visit> visits = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public Collection<? extends GrantedAuthority> getAuthorities() {
|
||||
return List.of(this.role);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPassword() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsername() {
|
||||
return this.email;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAccountNonExpired() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAccountNonLocked() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCredentialsNonExpired() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
}
|
||||
}
|
4
src/main/java/com/example/nto/domain/entity/Office.java
Normal file
4
src/main/java/com/example/nto/domain/entity/Office.java
Normal file
@ -0,0 +1,4 @@
|
||||
package com.example.nto.domain.entity;
|
||||
|
||||
public class Office {
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.example.nto.domain.entity;
|
||||
|
||||
public class Position {
|
||||
}
|
37
src/main/java/com/example/nto/domain/entity/Role.java
Normal file
37
src/main/java/com/example/nto/domain/entity/Role.java
Normal file
@ -0,0 +1,37 @@
|
||||
package com.example.nto.domain.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table(name = "roles")
|
||||
public class Role implements GrantedAuthority {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private long id;
|
||||
|
||||
@Column(name = "role_name", unique = true)
|
||||
@NotBlank(message = "Название роли не может быть пустой!")
|
||||
@Size(max = 100, message = "Максимальная длина роли 100 символов!")
|
||||
private String roleName;
|
||||
|
||||
@OneToMany(mappedBy = "role")
|
||||
private List<Employee> employees;
|
||||
|
||||
@Override
|
||||
public String getAuthority() {
|
||||
return this.roleName;
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.example.nto.domain.entity;
|
||||
|
||||
public class Terminal {
|
||||
}
|
4
src/main/java/com/example/nto/domain/entity/Visit.java
Normal file
4
src/main/java/com/example/nto/domain/entity/Visit.java
Normal file
@ -0,0 +1,4 @@
|
||||
package com.example.nto.domain.entity;
|
||||
|
||||
public class Visit {
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user