api animal
This commit is contained in:
@@ -2,7 +2,9 @@ package com.kamco.cd.kamcoback.postgres.core;
|
||||
|
||||
import com.kamco.cd.kamcoback.common.service.BaseCoreService;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.AnimalEntity;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.ZooEntity;
|
||||
import com.kamco.cd.kamcoback.postgres.repository.AnimalRepository;
|
||||
import com.kamco.cd.kamcoback.postgres.repository.ZooRepository;
|
||||
import com.kamco.cd.kamcoback.zoo.dto.AnimalDto;
|
||||
import jakarta.persistence.EntityNotFoundException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -17,6 +19,7 @@ public class AnimalCoreService
|
||||
implements BaseCoreService<AnimalDto.Basic, Long, AnimalDto.SearchReq> {
|
||||
|
||||
private final AnimalRepository animalRepository;
|
||||
private final ZooRepository zooRepository;
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public AnimalDto.Basic getDataByUuid(String uuid) {
|
||||
@@ -33,7 +36,18 @@ public class AnimalCoreService
|
||||
// AddReq를 받는 추가 메서드
|
||||
@Transactional
|
||||
public AnimalDto.Basic create(AnimalDto.AddReq req) {
|
||||
AnimalEntity entity = new AnimalEntity(req.getCategory(), req.getSpecies(), req.getName());
|
||||
ZooEntity zoo = null;
|
||||
if (req.getZooId() != null) {
|
||||
zoo =
|
||||
zooRepository
|
||||
.getZooByUid(req.getZooId())
|
||||
.orElseThrow(
|
||||
() ->
|
||||
new EntityNotFoundException(
|
||||
"Zoo not found with id: " + req.getZooId()));
|
||||
}
|
||||
AnimalEntity entity =
|
||||
new AnimalEntity(req.getCategory(), req.getSpecies(), req.getName(), zoo);
|
||||
AnimalEntity saved = animalRepository.save(entity);
|
||||
return saved.toDto();
|
||||
}
|
||||
|
||||
@@ -8,9 +8,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.EnumType;
|
||||
import jakarta.persistence.Enumerated;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import java.util.UUID;
|
||||
import lombok.AccessLevel;
|
||||
@@ -41,13 +44,18 @@ public class AnimalEntity extends CommonDateEntity {
|
||||
private String name;
|
||||
private Boolean isDeleted;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "zoo_id")
|
||||
private ZooEntity zoo;
|
||||
|
||||
// Construct
|
||||
public AnimalEntity(Category category, Species species, String name) {
|
||||
public AnimalEntity(Category category, Species species, String name, ZooEntity zoo) {
|
||||
this.uuid = UUID.randomUUID();
|
||||
this.category = category;
|
||||
this.species = species;
|
||||
this.name = name;
|
||||
this.isDeleted = false;
|
||||
this.zoo = zoo;
|
||||
}
|
||||
|
||||
public AnimalDto.Basic toDto() {
|
||||
|
||||
@@ -23,6 +23,7 @@ public class AnimalDto {
|
||||
private Category category;
|
||||
private Species species;
|
||||
private String name;
|
||||
private Long zooId; // 동물원 ID (선택)
|
||||
}
|
||||
|
||||
@Getter
|
||||
|
||||
Reference in New Issue
Block a user