package com.example.nto.entity; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDate; /** * TODO: ДОРАБОТАТЬ в рамках задания * ================================= * МОЖНО: Добавлять методы, аннотации, зависимости * НЕЛЬЗЯ: Изменять название класса и пакета */ @Data @Builder @NoArgsConstructor @AllArgsConstructor @Entity public class Booking { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private LocalDate date; @ManyToOne(targetEntity = Place.class, fetch = FetchType.LAZY) @JoinColumn(name = "place_id") private Place place; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "employee_id") @JsonBackReference private Employee employee; @Data public static class AvailablePlaceDto { private long id; private String place; } @Data public static class CreateBookingRequest { @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate date; private long placeId; } @Data public static class ErrorResponse { private String error; private String message; public ErrorResponse(String error, String message) { this.error = error; this.message = message; } } @Data public static class BookingResponse { private Long id; @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate date; private Long placeId; private String placeName; private Long employeeId; private String employeeName; } }