diff --git a/src/main/java/com/example/nto/domain/entity/Office.java b/src/main/java/com/example/nto/domain/entity/Office.java index 9d1f7f6..cee9e88 100644 --- a/src/main/java/com/example/nto/domain/entity/Office.java +++ b/src/main/java/com/example/nto/domain/entity/Office.java @@ -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 employeeList; + + @OneToMany(mappedBy = "office") + private List terminals; } diff --git a/src/main/java/com/example/nto/domain/entity/Position.java b/src/main/java/com/example/nto/domain/entity/Position.java index 3d25e99..61d900e 100644 --- a/src/main/java/com/example/nto/domain/entity/Position.java +++ b/src/main/java/com/example/nto/domain/entity/Position.java @@ -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 employees; +} \ No newline at end of file