feat: add zoo sample

This commit is contained in:
2025-11-17 10:00:38 +09:00
parent eae3ba428f
commit e96b244b3a
11 changed files with 581 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
package com.kamco.cd.kamcoback.zoo.service;
import com.kamco.cd.kamcoback.postgres.core.ZooCoreService;
import com.kamco.cd.kamcoback.zoo.dto.ZooDto;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor
@Service
@Transactional(readOnly = true)
public class ZooService {
private final ZooCoreService zooCoreService;
// 동물원의 UUID로 id조회
public Long getZooByUuid(String uuid) {
return zooCoreService.getDataByUuid(uuid).getId();
}
/**
* 동물원 생성
*
* @param req 동물원 생성 요청
* @return 생성된 동물원 정보 (동물 개수 포함)
*/
@Transactional
public ZooDto.Detail createZoo(ZooDto.AddReq req) {
return zooCoreService.create(req);
}
/**
* 동물원 삭제 (논리 삭제)
*
* @param id 동물원 ID
*/
@Transactional
public void deleteZoo(Long id) {
zooCoreService.remove(id);
}
/**
* 동물원 단건 조회
*
* @param id 동물원 ID
* @return 동물원 정보 (동물 개수 포함)
*/
public ZooDto.Detail getZoo(Long id) {
return zooCoreService.getOneById(id);
}
/**
* 동물원 검색 (페이징)
*
* @param searchReq 검색 조건
* @return 페이징 처리된 동물원 목록 (각 동물원의 동물 개수 포함)
*/
public Page<ZooDto.Detail> search(ZooDto.SearchReq searchReq) {
return zooCoreService.search(searchReq);
}
}