enable Hibernate validation

This commit is contained in:
2026-04-06 20:46:27 -06:00
parent e291a0e999
commit f646c18035
10 changed files with 36 additions and 1099 deletions

View File

@@ -11,7 +11,7 @@ final class RuntimeClasspathValidator {
if (!resourceExists("application.yml")) {
throw new IllegalStateException("Backend resources are missing from the runtime classpath. Reimport the Maven project in IntelliJ and run the shared Maven run configuration.");
}
if (!resourceExists("db/migration/V1__baseline_schema.sql")) {
if (!resourceExists("db/migration/V1__target_baseline.sql")) {
throw new IllegalStateException("Flyway migration files are missing from the runtime classpath. Reimport the Maven project in IntelliJ and run the shared Maven run configuration.");
}
}

View File

@@ -3,7 +3,6 @@ package com.petshop.backend.dto.appointment;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;
import java.util.Objects;
public class AppointmentRequest {
@@ -25,7 +24,7 @@ public class AppointmentRequest {
@NotNull(message = "Appointment status is required")
private String appointmentStatus;
private List<Long> petIds;
private Long petId;
private Long employeeId;
@@ -77,12 +76,12 @@ public class AppointmentRequest {
this.appointmentStatus = appointmentStatus;
}
public List<Long> getPetIds() {
return petIds;
public Long getPetId() {
return petId;
}
public void setPetIds(List<Long> petIds) {
this.petIds = petIds;
public void setPetId(Long petId) {
this.petId = petId;
}
public Long getEmployeeId() {
@@ -104,13 +103,13 @@ public class AppointmentRequest {
Objects.equals(appointmentDate, that.appointmentDate) &&
Objects.equals(appointmentTime, that.appointmentTime) &&
Objects.equals(appointmentStatus, that.appointmentStatus) &&
Objects.equals(petIds, that.petIds) &&
Objects.equals(petId, that.petId) &&
Objects.equals(employeeId, that.employeeId);
}
@Override
public int hashCode() {
return Objects.hash(customerId, storeId, serviceId, appointmentDate, appointmentTime, appointmentStatus, petIds, employeeId);
return Objects.hash(customerId, storeId, serviceId, appointmentDate, appointmentTime, appointmentStatus, petId, employeeId);
}
@Override
@@ -122,7 +121,7 @@ public class AppointmentRequest {
", appointmentDate=" + appointmentDate +
", appointmentTime=" + appointmentTime +
", appointmentStatus='" + appointmentStatus + '\'' +
", petIds=" + petIds +
", petId=" + petId +
", employeeId=" + employeeId +
'}';
}

View File

@@ -3,7 +3,6 @@ package com.petshop.backend.dto.appointment;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
import java.util.Objects;
public class AppointmentResponse {
@@ -19,15 +18,15 @@ public class AppointmentResponse {
private String appointmentStatus;
private Long employeeId;
private String employeeName;
private List<String> petNames;
private List<Long> petIds;
private String petName;
private Long petId;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
public AppointmentResponse() {
}
public AppointmentResponse(Long appointmentId, Long customerId, String customerName, Long storeId, String storeName, Long serviceId, String serviceName, LocalDate appointmentDate, LocalTime appointmentTime, String appointmentStatus, List<String> petNames, List<Long> petIds, LocalDateTime createdAt, LocalDateTime updatedAt) {
public AppointmentResponse(Long appointmentId, Long customerId, String customerName, Long storeId, String storeName, Long serviceId, String serviceName, LocalDate appointmentDate, LocalTime appointmentTime, String appointmentStatus, String petName, Long petId, LocalDateTime createdAt, LocalDateTime updatedAt) {
this.appointmentId = appointmentId;
this.customerId = customerId;
this.customerName = customerName;
@@ -38,8 +37,8 @@ public class AppointmentResponse {
this.appointmentDate = appointmentDate;
this.appointmentTime = appointmentTime;
this.appointmentStatus = appointmentStatus;
this.petNames = petNames;
this.petIds = petIds;
this.petName = petName;
this.petId = petId;
this.createdAt = createdAt;
this.updatedAt = updatedAt;
}
@@ -140,20 +139,20 @@ public class AppointmentResponse {
this.employeeName = employeeName;
}
public List<String> getPetNames() {
return petNames;
public String getPetName() {
return petName;
}
public void setPetNames(List<String> petNames) {
this.petNames = petNames;
public void setPetName(String petName) {
this.petName = petName;
}
public List<Long> getPetIds() {
return petIds;
public Long getPetId() {
return petId;
}
public void setPetIds(List<Long> petIds) {
this.petIds = petIds;
public void setPetId(Long petId) {
this.petId = petId;
}
public LocalDateTime getCreatedAt() {
@@ -177,12 +176,12 @@ public class AppointmentResponse {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AppointmentResponse that = (AppointmentResponse) o;
return Objects.equals(appointmentId, that.appointmentId) && Objects.equals(customerId, that.customerId) && Objects.equals(customerName, that.customerName) && Objects.equals(storeId, that.storeId) && Objects.equals(storeName, that.storeName) && Objects.equals(serviceId, that.serviceId) && Objects.equals(serviceName, that.serviceName) && Objects.equals(appointmentDate, that.appointmentDate) && Objects.equals(appointmentTime, that.appointmentTime) && Objects.equals(appointmentStatus, that.appointmentStatus) && Objects.equals(petNames, that.petNames) && Objects.equals(petIds, that.petIds) && Objects.equals(createdAt, that.createdAt) && Objects.equals(updatedAt, that.updatedAt);
return Objects.equals(appointmentId, that.appointmentId) && Objects.equals(customerId, that.customerId) && Objects.equals(customerName, that.customerName) && Objects.equals(storeId, that.storeId) && Objects.equals(storeName, that.storeName) && Objects.equals(serviceId, that.serviceId) && Objects.equals(serviceName, that.serviceName) && Objects.equals(appointmentDate, that.appointmentDate) && Objects.equals(appointmentTime, that.appointmentTime) && Objects.equals(appointmentStatus, that.appointmentStatus) && Objects.equals(petName, that.petName) && Objects.equals(petId, that.petId) && Objects.equals(createdAt, that.createdAt) && Objects.equals(updatedAt, that.updatedAt);
}
@Override
public int hashCode() {
return Objects.hash(appointmentId, customerId, customerName, storeId, storeName, serviceId, serviceName, appointmentDate, appointmentTime, appointmentStatus, petNames, petIds, createdAt, updatedAt);
return Objects.hash(appointmentId, customerId, customerName, storeId, storeName, serviceId, serviceName, appointmentDate, appointmentTime, appointmentStatus, petName, petId, createdAt, updatedAt);
}
@Override
@@ -198,8 +197,8 @@ public class AppointmentResponse {
", appointmentDate=" + appointmentDate +
", appointmentTime=" + appointmentTime +
", appointmentStatus='" + appointmentStatus + '\'' +
", petNames=" + petNames +
", petIds=" + petIds +
", petName='" + petName + '\'' +
", petId=" + petId +
", createdAt=" + createdAt +
", updatedAt=" + updatedAt +
'}';

View File

@@ -7,9 +7,7 @@ import org.hibernate.annotations.UpdateTimestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@Entity
@Table(name = "appointment")
@@ -44,13 +42,9 @@ public class Appointment {
@Column(nullable = false, length = 20)
private String appointmentStatus;
@ManyToMany
@JoinTable(
name = "appointmentPet",
joinColumns = @JoinColumn(name = "appointmentId"),
inverseJoinColumns = @JoinColumn(name = "petId")
)
private Set<Pet> pets = new HashSet<>();
@ManyToOne
@JoinColumn(name = "petId")
private Pet pet;
@CreationTimestamp
@Column(name = "created_at", updatable = false)
@@ -127,12 +121,12 @@ public class Appointment {
this.appointmentStatus = appointmentStatus;
}
public Set<Pet> getPets() {
return pets;
public Pet getPet() {
return pet;
}
public void setPets(Set<Pet> pets) {
this.pets = pets;
public void setPet(Pet pet) {
this.pet = pet;
}
public LocalDateTime getCreatedAt() {
@@ -175,7 +169,7 @@ public class Appointment {
", appointmentDate=" + appointmentDate +
", appointmentTime=" + appointmentTime +
", appointmentStatus='" + appointmentStatus + '\'' +
", pets=" + pets +
", pet=" + pet +
", createdAt=" + createdAt +
", updatedAt=" + updatedAt +
'}';