package com.bio.bio_backend.domain.admin.common_code.service;

import com.bio.bio_backend.domain.admin.common_code.dto.CommonCodeDto;
import com.bio.bio_backend.domain.admin.common_code.dto.CommonGroupCodeDto;
import com.bio.bio_backend.domain.admin.common_code.dto.GetCommonCodeResponseDto;

import java.util.List;

public interface CommonCodeService {
    
    // 그룹 코드 관련
    CommonGroupCodeDto createGroupCode(CommonGroupCodeDto groupCodeDto);
    void updateGroupCode(String code, CommonGroupCodeDto groupCodeDto);
    void deleteGroupCode(String code);
    CommonGroupCodeDto getGroupCode(String code);
    List<CommonGroupCodeDto> getAllGroupCodes();
    List<CommonGroupCodeDto> getActiveGroupCodes();
    
    // 공통 코드 관련
    CommonCodeDto createCode(CommonCodeDto codeDto);
    void updateCode(String code, CommonCodeDto codeDto);
    void deleteCode(String code);
    CommonCodeDto getCode(String code);
    GetCommonCodeResponseDto getCodeWithJoinInfo(String code);
    List<CommonCodeDto> getActiveCodesByGroupCode(String groupCode);
    List<CommonCodeDto> getActiveCodesByParentCode(String parentCode);
    List<CommonCodeDto> getAllCodes();
}
