package go.kr.project.common.service.impl;

import go.kr.project.common.mapper.CommonCodeMapper;
import go.kr.project.common.model.CmmnCodeSearchVO;
import go.kr.project.common.service.CommonCodeService;
import go.kr.project.system.code.model.CodeDetailVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * packageName    : go.kr.project.common.service.impl
 * fileName       : CommonCodeServiceImpl
 * author         : 개발자
 * date           : 2025-05-10
 * description    : 공통 코드 관련 비즈니스 로직을 처리하는 서비스 구현체
 * ===========================================================
 * DATE              AUTHOR             NOTE
 * -----------------------------------------------------------
 * 2025-05-10        개발자       최초 생성
 */
@Slf4j
@Service
@RequiredArgsConstructor
public class CommonCodeServiceImpl extends EgovAbstractServiceImpl implements CommonCodeService {

    private final CommonCodeMapper commonCodeMapper;

    /**
     * 특정 코드 그룹에 속한 코드 상세 목록을 조회합니다.
     * 
     * @param cdGroupId 코드 그룹 ID
     * @return 코드 상세 목록
     */
    @Override
    public List<CodeDetailVO> selectCodeDetailListByGroupId(String cdGroupId) {
        return commonCodeMapper.selectCodeDetailListByGroupId(cdGroupId);
    }


    /**
     * 검색 조건에 맞는 코드 상세 목록을 조회합니다.
     *
     * @param searchVO 코드 상세 검색을 위한 검색 조건을 담은 VO 객체
     * @return 검색 조건에 맞는 코드 상세 목록
     */
    @Override
    public List<CodeDetailVO> selectCodeDetailList(CmmnCodeSearchVO searchVO) {
        return commonCodeMapper.selectCodeDetailList(searchVO);
    }
}