feat: added two entities Office and Position

This commit is contained in:
Petr Rudichev 2025-02-18 20:17:32 +03:00
parent 712f35a2cc
commit 60023f90c5
2 changed files with 92 additions and 1 deletions

View File

@ -1,4 +1,68 @@
package com.example.nto.domain.entity;
import jakarta.persistence.*;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "offices")
public class Office {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "name", unique = true)
@NotBlank(message = "Название не может быть пустым!")
@Size(max = 100, message = "Максимальная длина названия 100 символов!")
private String name;
@Column(name = "description")
@NotBlank(message = "Описание не может быть пустым!")
@Size(max = 300, message = "Максимальная длина описания 300 символов!")
private String description;
@Column(name = "address")
@NotBlank(message = "Адрес не может быть пустым!")
@Size(max = 200, message = "Максимальный размер адреса 200 символов!")
private String address;
@Column(name = "latitude")
@NotNull(message = "Широта не может быть пустой!")
private Double latitude;
@Column(name = "longitude")
@NotNull(message = "Долгота не может быть пустой!")
private Double longitude;
@Column(name = "logo_image_url")
@NotBlank(message = "Путь к логотипу не может быть пустой!")
@Size(max = 200, message = "Максимальный размер пути к логотипу 200 символов!")
private String linkLogo;
@Column(name = "telephone")
@Size(max = 20, message = "Максимальная длина телефонного номера 20 символов!")
private String telephone;
@Column(name = "email")
@Size(max = 255, message = "Максимальная длина email 255 символов")
@Email(message = "Email адрес должен быть в формате user@example.com!")
private String email;
@OneToMany(mappedBy = "office")
private List<Employee> employeeList;
@OneToMany(mappedBy = "office")
private List<Terminal> terminals;
}

View File

@ -1,4 +1,31 @@
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 java.util.List;
@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "positions")
public class Position {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "name", unique = true)
@NotBlank(message = "Название не может быть пустым!")
@Size(max = 100, message = "Максимальная длина названия 100 символов!")
private String name;
@OneToMany(mappedBy = "position")
private List<Employee> employees;
}