add service species collection
This commit is contained in:
@@ -4,7 +4,9 @@ import jakarta.validation.constraints.NotBlank;
|
|||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import jakarta.validation.constraints.Positive;
|
import jakarta.validation.constraints.Positive;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class ServiceRequest {
|
public class ServiceRequest {
|
||||||
@NotBlank(message = "Service name is required")
|
@NotBlank(message = "Service name is required")
|
||||||
@@ -19,6 +21,8 @@ public class ServiceRequest {
|
|||||||
@Positive(message = "Duration must be positive")
|
@Positive(message = "Duration must be positive")
|
||||||
private Integer serviceDuration;
|
private Integer serviceDuration;
|
||||||
|
|
||||||
|
private Set<String> species = new HashSet<>();
|
||||||
|
|
||||||
public String getServiceName() {
|
public String getServiceName() {
|
||||||
return serviceName;
|
return serviceName;
|
||||||
}
|
}
|
||||||
@@ -51,6 +55,14 @@ public class ServiceRequest {
|
|||||||
this.serviceDuration = serviceDuration;
|
this.serviceDuration = serviceDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<String> getSpecies() {
|
||||||
|
return species;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecies(Set<String> species) {
|
||||||
|
this.species = species;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (this == o) return true;
|
if (this == o) return true;
|
||||||
@@ -59,12 +71,13 @@ public class ServiceRequest {
|
|||||||
return Objects.equals(serviceName, that.serviceName) &&
|
return Objects.equals(serviceName, that.serviceName) &&
|
||||||
Objects.equals(serviceDesc, that.serviceDesc) &&
|
Objects.equals(serviceDesc, that.serviceDesc) &&
|
||||||
Objects.equals(servicePrice, that.servicePrice) &&
|
Objects.equals(servicePrice, that.servicePrice) &&
|
||||||
Objects.equals(serviceDuration, that.serviceDuration);
|
Objects.equals(serviceDuration, that.serviceDuration) &&
|
||||||
|
Objects.equals(species, that.species);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(serviceName, serviceDesc, servicePrice, serviceDuration);
|
return Objects.hash(serviceName, serviceDesc, servicePrice, serviceDuration, species);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -74,6 +87,7 @@ public class ServiceRequest {
|
|||||||
", serviceDesc='" + serviceDesc + '\'' +
|
", serviceDesc='" + serviceDesc + '\'' +
|
||||||
", servicePrice=" + servicePrice +
|
", servicePrice=" + servicePrice +
|
||||||
", serviceDuration=" + serviceDuration +
|
", serviceDuration=" + serviceDuration +
|
||||||
|
", species=" + species +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.petshop.backend.dto.service;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class ServiceResponse {
|
public class ServiceResponse {
|
||||||
private Long serviceId;
|
private Long serviceId;
|
||||||
@@ -10,18 +11,20 @@ public class ServiceResponse {
|
|||||||
private String serviceDesc;
|
private String serviceDesc;
|
||||||
private BigDecimal servicePrice;
|
private BigDecimal servicePrice;
|
||||||
private Integer serviceDuration;
|
private Integer serviceDuration;
|
||||||
|
private Set<String> species;
|
||||||
private LocalDateTime createdAt;
|
private LocalDateTime createdAt;
|
||||||
private LocalDateTime updatedAt;
|
private LocalDateTime updatedAt;
|
||||||
|
|
||||||
public ServiceResponse() {
|
public ServiceResponse() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServiceResponse(Long serviceId, String serviceName, String serviceDesc, BigDecimal servicePrice, Integer serviceDuration, LocalDateTime createdAt, LocalDateTime updatedAt) {
|
public ServiceResponse(Long serviceId, String serviceName, String serviceDesc, BigDecimal servicePrice, Integer serviceDuration, Set<String> species, LocalDateTime createdAt, LocalDateTime updatedAt) {
|
||||||
this.serviceId = serviceId;
|
this.serviceId = serviceId;
|
||||||
this.serviceName = serviceName;
|
this.serviceName = serviceName;
|
||||||
this.serviceDesc = serviceDesc;
|
this.serviceDesc = serviceDesc;
|
||||||
this.servicePrice = servicePrice;
|
this.servicePrice = servicePrice;
|
||||||
this.serviceDuration = serviceDuration;
|
this.serviceDuration = serviceDuration;
|
||||||
|
this.species = species;
|
||||||
this.createdAt = createdAt;
|
this.createdAt = createdAt;
|
||||||
this.updatedAt = updatedAt;
|
this.updatedAt = updatedAt;
|
||||||
}
|
}
|
||||||
@@ -66,6 +69,14 @@ public class ServiceResponse {
|
|||||||
this.serviceDuration = serviceDuration;
|
this.serviceDuration = serviceDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<String> getSpecies() {
|
||||||
|
return species;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecies(Set<String> species) {
|
||||||
|
this.species = species;
|
||||||
|
}
|
||||||
|
|
||||||
public LocalDateTime getCreatedAt() {
|
public LocalDateTime getCreatedAt() {
|
||||||
return createdAt;
|
return createdAt;
|
||||||
}
|
}
|
||||||
@@ -87,12 +98,12 @@ public class ServiceResponse {
|
|||||||
if (this == o) return true;
|
if (this == o) return true;
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
if (o == null || getClass() != o.getClass()) return false;
|
||||||
ServiceResponse that = (ServiceResponse) o;
|
ServiceResponse that = (ServiceResponse) o;
|
||||||
return Objects.equals(serviceId, that.serviceId) && Objects.equals(serviceName, that.serviceName) && Objects.equals(serviceDesc, that.serviceDesc) && Objects.equals(servicePrice, that.servicePrice) && Objects.equals(serviceDuration, that.serviceDuration) && Objects.equals(createdAt, that.createdAt) && Objects.equals(updatedAt, that.updatedAt);
|
return Objects.equals(serviceId, that.serviceId) && Objects.equals(serviceName, that.serviceName) && Objects.equals(serviceDesc, that.serviceDesc) && Objects.equals(servicePrice, that.servicePrice) && Objects.equals(serviceDuration, that.serviceDuration) && Objects.equals(species, that.species) && Objects.equals(createdAt, that.createdAt) && Objects.equals(updatedAt, that.updatedAt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return Objects.hash(serviceId, serviceName, serviceDesc, servicePrice, serviceDuration, createdAt, updatedAt);
|
return Objects.hash(serviceId, serviceName, serviceDesc, servicePrice, serviceDuration, species, createdAt, updatedAt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -103,6 +114,7 @@ public class ServiceResponse {
|
|||||||
", serviceDesc='" + serviceDesc + '\'' +
|
", serviceDesc='" + serviceDesc + '\'' +
|
||||||
", servicePrice=" + servicePrice +
|
", servicePrice=" + servicePrice +
|
||||||
", serviceDuration=" + serviceDuration +
|
", serviceDuration=" + serviceDuration +
|
||||||
|
", species=" + species +
|
||||||
", createdAt=" + createdAt +
|
", createdAt=" + createdAt +
|
||||||
", updatedAt=" + updatedAt +
|
", updatedAt=" + updatedAt +
|
||||||
'}';
|
'}';
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ import org.hibernate.annotations.UpdateTimestamp;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "service")
|
@Table(name = "service")
|
||||||
@@ -28,6 +30,11 @@ public class Service {
|
|||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private Integer serviceDuration;
|
private Integer serviceDuration;
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
@CollectionTable(name = "service_species", joinColumns = @JoinColumn(name = "serviceId"))
|
||||||
|
@Column(name = "species", length = 50)
|
||||||
|
private Set<String> species = new HashSet<>();
|
||||||
|
|
||||||
@CreationTimestamp
|
@CreationTimestamp
|
||||||
@Column(name = "created_at", updatable = false)
|
@Column(name = "created_at", updatable = false)
|
||||||
private LocalDateTime createdAt;
|
private LocalDateTime createdAt;
|
||||||
@@ -89,6 +96,14 @@ public class Service {
|
|||||||
this.serviceDuration = serviceDuration;
|
this.serviceDuration = serviceDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<String> getSpecies() {
|
||||||
|
return species;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecies(Set<String> species) {
|
||||||
|
this.species = species;
|
||||||
|
}
|
||||||
|
|
||||||
public LocalDateTime getCreatedAt() {
|
public LocalDateTime getCreatedAt() {
|
||||||
return createdAt;
|
return createdAt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ public class ServiceService {
|
|||||||
service.setServiceDesc(request.getServiceDesc());
|
service.setServiceDesc(request.getServiceDesc());
|
||||||
service.setServicePrice(request.getServicePrice());
|
service.setServicePrice(request.getServicePrice());
|
||||||
service.setServiceDuration(request.getServiceDuration());
|
service.setServiceDuration(request.getServiceDuration());
|
||||||
|
if (request.getSpecies() != null) {
|
||||||
|
service.setSpecies(request.getSpecies());
|
||||||
|
}
|
||||||
|
|
||||||
service = serviceRepository.save(service);
|
service = serviceRepository.save(service);
|
||||||
return mapToResponse(service);
|
return mapToResponse(service);
|
||||||
@@ -56,6 +59,9 @@ public class ServiceService {
|
|||||||
service.setServiceDesc(request.getServiceDesc());
|
service.setServiceDesc(request.getServiceDesc());
|
||||||
service.setServicePrice(request.getServicePrice());
|
service.setServicePrice(request.getServicePrice());
|
||||||
service.setServiceDuration(request.getServiceDuration());
|
service.setServiceDuration(request.getServiceDuration());
|
||||||
|
if (request.getSpecies() != null) {
|
||||||
|
service.setSpecies(request.getSpecies());
|
||||||
|
}
|
||||||
|
|
||||||
service = serviceRepository.save(service);
|
service = serviceRepository.save(service);
|
||||||
return mapToResponse(service);
|
return mapToResponse(service);
|
||||||
@@ -81,6 +87,7 @@ public class ServiceService {
|
|||||||
service.getServiceDesc(),
|
service.getServiceDesc(),
|
||||||
service.getServicePrice(),
|
service.getServicePrice(),
|
||||||
service.getServiceDuration(),
|
service.getServiceDuration(),
|
||||||
|
service.getSpecies(),
|
||||||
service.getCreatedAt(),
|
service.getCreatedAt(),
|
||||||
service.getUpdatedAt()
|
service.getUpdatedAt()
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user