refactor: apply Glow standard to dap-tool-core (usecase, javadoc, etc)
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled

This commit is contained in:
jade
2026-07-25 01:56:41 +09:00
parent e58c004d9d
commit e6407b07a2
26 changed files with 193 additions and 118 deletions

View File

@@ -15,6 +15,21 @@ import org.springframework.stereotype.Component;
@Slf4j
@Component
@RequiredArgsConstructor
/**
* @package io.shinhanlife.dap.lib.integration.eai.component
* @className AxhubEaiComponent
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
public class AxhubEaiComponent {
@SuppressWarnings("rawtypes")

View File

@@ -22,6 +22,21 @@ import java.util.Map;
@Slf4j
@Component
@RequiredArgsConstructor
/**
* @package io.shinhanlife.dap.lib.integration.mci.component
* @className AxhubMciComponent
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
public class AxhubMciComponent {
@SuppressWarnings("rawtypes")

View File

@@ -9,6 +9,21 @@ import org.springframework.context.annotation.Configuration;
* ComponentScan에 잡히게 되면 이 설정 클래스는 삭제하세요.
*/
@Configuration
/**
* @package io.shinhanlife.dap.lib.integration.mci.config
* @className GlowMockConfig
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
public class GlowMockConfig {
@Bean

View File

@@ -5,6 +5,21 @@ import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
/**
* @package io.shinhanlife.dap.lib.integration.mci.enums
* @className IndvCtinRoleTyp
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
public enum IndvCtinRoleTyp {
CD_Z99("Z99");

View File

@@ -1,11 +1,11 @@
package io.shinhanlife.dap.lib.session.domain.service;
package io.shinhanlife.dap.lib.session.domain.usecase;
import io.shinhanlife.dap.lib.session.dto.ZtUsacInDto;
import io.shinhanlife.dap.lib.session.dto.ZtUsacOutDto;
/**
* @package io.shinhanlife.dap.lib.session.domain.service
* @className ZtUsacService
* @className ZtUsacUseCase
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -17,7 +17,7 @@ import io.shinhanlife.dap.lib.session.dto.ZtUsacOutDto;
*
* </pre>
*/
public interface ZtUsacService {
public interface ZtUsacUseCase {
/**
* 사용자 조회 (단건)

View File

@@ -1,15 +1,15 @@
package io.shinhanlife.dap.lib.session.domain.service.impl;
package io.shinhanlife.dap.lib.session.domain.usecase.impl;
import io.shinhanlife.dap.lib.session.domain.repository.ZtUsacRepository;
import io.shinhanlife.dap.lib.session.domain.service.ZtUsacService;
import io.shinhanlife.dap.lib.session.domain.usecase.ZtUsacUseCase;
import io.shinhanlife.dap.lib.session.dto.ZtUsacInDto;
import io.shinhanlife.dap.lib.session.dto.ZtUsacOutDto;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @package io.shinhanlife.dap.lib.session.domain.service.impl
* @className ZtUsacServiceImpl
* @package io.shinhanlife.dap.lib.session.domain.usecase.impl
* @className ZtUsacUseCaseImpl
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -23,7 +23,7 @@ import org.springframework.stereotype.Service;
*/
@Service
@RequiredArgsConstructor
public class ZtUsacServiceImpl implements ZtUsacService {
public class ZtUsacUseCaseImpl implements ZtUsacUseCase {
private final ZtUsacRepository ztUsacRepository;

View File

@@ -6,7 +6,7 @@ import io.shinhanlife.glow.BizException;
import io.shinhanlife.glow.GlowControllerId;
import io.shinhanlife.glow.ResponseUtil;
import io.shinhanlife.dap.lib.session.converter.ZtUsacConverter;
import io.shinhanlife.dap.lib.session.domain.service.ZtUsacService;
import io.shinhanlife.dap.lib.session.domain.usecase.ZtUsacUseCase;
import io.shinhanlife.dap.lib.session.dto.SessionDto;
import io.shinhanlife.dap.lib.session.dto.ZtUsacInDto;
import io.shinhanlife.dap.lib.session.dto.ZtUsacOutDto;
@@ -46,7 +46,7 @@ import java.util.Objects;
public class SsoRestController {
private static final String NLS_LOGIN_URL = "";
private final ZtUsacService ztUsacService;
private final ZtUsacUseCase ztUsacService;
private final ZtUsacConverter ztUsacConverter;
/**

View File

@@ -1,68 +1,83 @@
package io.shinhanlife.dap.lib.util;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import io.shinhanlife.dap.lib.annotation.McpParameter;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JsonSchemaGenerator {
/**
* Java DTO 클래스를 분석하여 MCP 규격의 완전한 JSON Schema를 생성합니다.
*/
public static Map<String, Object> generateSchema(Class<?> clazz) {
Map<String, Object> schema = new HashMap<>();
schema.put("type", "object");
Map<String, Object> properties = new HashMap<>();
List<String> requiredList = new ArrayList<>();
for (Field field : clazz.getDeclaredFields()) {
Map<String, Object> fieldSchema = new HashMap<>();
// 1. 타입 매핑
fieldSchema.put("type", mapJavaTypeToJsonType(field.getType()));
// 2. 어노테이션 기반 설명 추출
McpParameter paramAnnotation = field.getAnnotation(McpParameter.class);
JsonPropertyDescription descAnnotation = field.getAnnotation(JsonPropertyDescription.class);
if (paramAnnotation != null && !paramAnnotation.description().isEmpty()) {
fieldSchema.put("description", paramAnnotation.description());
} else if (descAnnotation != null && !descAnnotation.value().isEmpty()) {
fieldSchema.put("description", descAnnotation.value());
} else {
fieldSchema.put("description", field.getName()); // 기본값
}
// 3. 필수 여부 판단
JsonProperty jsonProp = field.getAnnotation(JsonProperty.class);
if ((jsonProp != null && jsonProp.required()) || (paramAnnotation != null && paramAnnotation.required())) {
requiredList.add(field.getName());
}
properties.put(field.getName(), fieldSchema);
}
schema.put("properties", properties);
if (!requiredList.isEmpty()) {
schema.put("required", requiredList);
}
return schema;
}
private static String mapJavaTypeToJsonType(Class<?> clazz) {
if (clazz == String.class) return "string";
if (clazz == Integer.class || clazz == int.class) return "integer";
if (clazz == Long.class || clazz == long.class) return "integer";
if (clazz == Double.class || clazz == double.class) return "number";
if (clazz == Float.class || clazz == float.class) return "number";
if (clazz == Boolean.class || clazz == boolean.class) return "boolean";
if (List.class.isAssignableFrom(clazz)) return "array";
return "object";
}
}
package io.shinhanlife.dap.lib.util;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import io.shinhanlife.dap.lib.annotation.McpParameter;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @package io.shinhanlife.dap.lib.util
* @className JsonSchemaGenerator
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
public class JsonSchemaGenerator {
/**
* Java DTO 클래스를 분석하여 MCP 규격의 완전한 JSON Schema를 생성합니다.
*/
public static Map<String, Object> generateSchema(Class<?> clazz) {
Map<String, Object> schema = new HashMap<>();
schema.put("type", "object");
Map<String, Object> properties = new HashMap<>();
List<String> requiredList = new ArrayList<>();
for (Field field : clazz.getDeclaredFields()) {
Map<String, Object> fieldSchema = new HashMap<>();
// 1. 타입 매핑
fieldSchema.put("type", mapJavaTypeToJsonType(field.getType()));
// 2. 어노테이션 기반 설명 추출
McpParameter paramAnnotation = field.getAnnotation(McpParameter.class);
JsonPropertyDescription descAnnotation = field.getAnnotation(JsonPropertyDescription.class);
if (paramAnnotation != null && !paramAnnotation.description().isEmpty()) {
fieldSchema.put("description", paramAnnotation.description());
} else if (descAnnotation != null && !descAnnotation.value().isEmpty()) {
fieldSchema.put("description", descAnnotation.value());
} else {
fieldSchema.put("description", field.getName()); // 기본값
}
// 3. 필수 여부 판단
JsonProperty jsonProp = field.getAnnotation(JsonProperty.class);
if ((jsonProp != null && jsonProp.required()) || (paramAnnotation != null && paramAnnotation.required())) {
requiredList.add(field.getName());
}
properties.put(field.getName(), fieldSchema);
}
schema.put("properties", properties);
if (!requiredList.isEmpty()) {
schema.put("required", requiredList);
}
return schema;
}
private static String mapJavaTypeToJsonType(Class<?> clazz) {
if (clazz == String.class) return "string";
if (clazz == Integer.class || clazz == int.class) return "integer";
if (clazz == Long.class || clazz == long.class) return "integer";
if (clazz == Double.class || clazz == double.class) return "number";
if (clazz == Float.class || clazz == float.class) return "number";
if (clazz == Boolean.class || clazz == boolean.class) return "boolean";
if (List.class.isAssignableFrom(clazz)) return "array";
return "object";
}
}

View File

@@ -176,7 +176,7 @@ public class ToolScaffolder {
String toolName = baseName.isEmpty() ? baseName : Character.toLowerCase(baseName.charAt(0)) + baseName.substring(1);
String serviceInterfaceContent = """
package %s.service;
package %s.usecase;
import %s.dto.%sRequest;
@@ -191,13 +191,13 @@ public class ToolScaffolder {
if (isMci) {
serviceImplContent = """
package %s.service.impl;
package %s.usecase.impl;
import %s.annotation.McpFunction;
import %s.annotation.McpTool;
import %s.dto.%sRequest;
import %s.dto.%sResponse;
import %s.service.%sService;
import %s.usecase.%sService;
import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;
import io.shinhanlife.glow.communication.dto.Transfer;
import org.springframework.stereotype.Service;
@@ -208,7 +208,7 @@ public class ToolScaffolder {
import %s.infra.itrf.mci.%s.io.%s_I;
/**
* @package %s.service.impl
* @package %s.usecase.impl
* @className %sServiceImpl
* @description AX HUB 시스템 처리 클래스
* @author %s
@@ -286,21 +286,21 @@ public class ToolScaffolder {
);
} else {
serviceImplContent = """
package %s.service.impl;
package %s.usecase.impl;
import %s.annotation.McpFunction;
import %s.annotation.McpTool;
import %s.dto.%sRequest;
import %s.dto.%sResponse;
import %s.service.%sService;
import %s.service.AbstractMcpToolService;
import %s.usecase.%sService;
import %s.usecase.AbstractMcpToolUseCase;
import %s.converter.%sLegacyConverter;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* @package %s.service.impl
* @package %s.usecase.impl
* @className %sServiceImpl
* @description AX HUB 시스템 처리 클래스
* @author %s
@@ -320,7 +320,7 @@ public class ToolScaffolder {
routingType = "%s",
categoryKey = "%s"
)
public class %sServiceImpl extends AbstractMcpToolService implements %sService {
public class %sServiceImpl extends AbstractMcpToolUseCase implements %sService {
private final %sLegacyConverter converter;

View File

@@ -24,7 +24,7 @@ import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.lib.config.McpProperties;
import io.shinhanlife.dap.mcc.dto.ToolMetadata;
import io.shinhanlife.dap.mcc.service.ToolRegistryHeartbeatSender;
import io.shinhanlife.dap.mcc.usecase.ToolRegistryHeartbeatSender;
import io.shinhanlife.dap.lib.util.JsonSchemaGenerator;
import java.lang.reflect.Method;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcc.service;
package io.shinhanlife.dap.mcc.usecase;
import io.shinhanlife.dap.lib.adapter.connector.LegacyEimsConnector;
import io.shinhanlife.dap.lib.adapter.util.PiiMaskingUtils;
@@ -14,7 +14,7 @@ import lombok.extern.slf4j.Slf4j;
/**
* @package io.shinhanlife.dap.mcc.service
* @className AbstractMcpToolService
* @className AbstractMcpToolUseCase
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.extern.slf4j.Slf4j;
* </pre>
*/
@Slf4j
public abstract class AbstractMcpToolService {
public abstract class AbstractMcpToolUseCase {
@Autowired
protected LegacyEimsConnector legacyEimsConnector;

View File

@@ -18,7 +18,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BalanceUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.BalanceRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -28,7 +28,7 @@ import java.util.Map;
@Slf4j
@Service
@McpTool(routingType = "MCI", categoryKey = "cmm")
public class BalanceUseCaseImpl extends AbstractMcpToolService implements BalanceUseCase {
public class BalanceUseCaseImpl extends AbstractMcpToolUseCase implements BalanceUseCase {
@McpFunction(register = false, displayName = "balance 툴", name = "balance",
description = "고객의 계좌 잔액을 조회합니다.",

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BillingProcessUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.BillingProcessRequest;
import io.shinhanlife.dap.mcc.biz.cmm.dto.BillingStatusRequest;
@@ -31,7 +31,7 @@ import java.util.Map;
* </pre>
*/
@lombok.extern.slf4j.Slf4j
public class BillingProcessUseCaseImpl extends AbstractMcpToolService implements BillingProcessUseCase {
public class BillingProcessUseCaseImpl extends AbstractMcpToolUseCase implements BillingProcessUseCase {
@McpFunction(register = false, displayName = "status 툴", name = "status", description = "청구심사 상태 조회", prompt = "현재 접수된 청구건 상태를 알려줘.", mappingId = "BILL_001")
@Override

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.BondIssueUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.BondCheckRequest;
import io.shinhanlife.dap.mcc.biz.cmm.dto.BondIssueRequest;
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.biz.cmm.dto.BondIssueRequest;
*
* </pre>
*/
public class BondIssueUseCaseImpl extends AbstractMcpToolService implements BondIssueUseCase {
public class BondIssueUseCaseImpl extends AbstractMcpToolUseCase implements BondIssueUseCase {
@McpFunction(displayName = "check 툴", name = "check", register = false, description = "발행 가능 여부 조회 테스트", prompt = "디지털 증권 발행 한도가 충분한지 확인해줘.", mappingId = "BOND_001")
@Override

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.CommonUtilityUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.LeaveCountRequest;
import io.shinhanlife.dap.mcc.biz.cmm.dto.VacationRegisterRequest;
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.biz.cmm.dto.VacationRegisterRequest;
*
* </pre>
*/
public class CommonUtilityUseCaseImpl extends AbstractMcpToolService implements CommonUtilityUseCase {
public class CommonUtilityUseCaseImpl extends AbstractMcpToolUseCase implements CommonUtilityUseCase {
@McpFunction(register = false, displayName = "register_vacation 툴", name = "register_vacation", description = "휴가 등록", prompt = "내일 하루 연차 휴가를 등록해줘.", mappingId = "HR_VAC_01")
@Override

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.ContractInquiryUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.ContractDetailRequest;
import io.shinhanlife.dap.mcc.biz.cmm.dto.ContractStatusRequest;
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.biz.cmm.dto.ContractStatusRequest;
*
* </pre>
*/
public class ContractInquiryUseCaseImpl extends AbstractMcpToolService implements ContractInquiryUseCase {
public class ContractInquiryUseCaseImpl extends AbstractMcpToolUseCase implements ContractInquiryUseCase {
@McpFunction(register = false, displayName = "contract_status 툴", name = "contract_status", description = "계약상태 조회", prompt = "김신한 고객의 현재 계약 상태를 조회해줘.", mappingId = "CNTR_001")
@Override

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.CustomerInfoUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerDetailRequest;
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGradeRequest;
@@ -25,7 +25,7 @@ import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGradeRequest;
*
* </pre>
*/
public class CustomerInfoUseCaseImpl extends AbstractMcpToolService implements CustomerInfoUseCase {
public class CustomerInfoUseCaseImpl extends AbstractMcpToolUseCase implements CustomerInfoUseCase {
@McpFunction(register = false, displayName = "grade 툴", name = "grade", description = "고객등급 조회", prompt = "이 고객의 VIP 등급을 조회해줘.", mappingId = "CRM_001")
@Override

View File

@@ -7,7 +7,7 @@ import io.shinhanlife.dap.lib.integration.mci.dto.ShinhanCommonHeaderDto;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.SampleMciToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.SampleStringToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.MciSampleStringResponse;
import io.shinhanlife.dap.mcc.biz.cmm.dto.SampleStringRequest;
import io.shinhanlife.glow.util.GlowMciParser;
@@ -31,7 +31,7 @@ import java.util.Map;
routingType = "MCI",
categoryKey = "cmm"
)
public class SampleStringToolUseCaseImpl extends AbstractMcpToolService implements SampleStringToolUseCase {
public class SampleStringToolUseCaseImpl extends AbstractMcpToolUseCase implements SampleStringToolUseCase {
@McpFunction(register = false, displayName = "get_sample_string 툴", name = "get_sample_string",
description = "MCI String 버전과 GlowTrgmField 파싱을 테스트하는 샘플 툴입니다.",

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.cmm.usecase.TemplateUtilityUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.cmm.dto.TemplateDownloadRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -32,7 +32,7 @@ import java.util.Map;
*
* </pre>
*/
public class TemplateUtilityUseCaseImpl extends AbstractMcpToolService implements TemplateUtilityUseCase {
public class TemplateUtilityUseCaseImpl extends AbstractMcpToolUseCase implements TemplateUtilityUseCase {
@Override
@McpFunction(register = false, displayName = "get_template_file_url 툴", name = "get_template_file_url",

View File

@@ -4,7 +4,7 @@ import io.shinhanlife.dap.mcc.biz.oth.io.MciCfpaClient;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.oth.usecase.OnnbaMciToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.oth.dto.Onnba3011Request;
import io.shinhanlife.glow.communication.dto.Transfer;
import lombok.RequiredArgsConstructor;

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.smp.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.smp.usecase.DailyQuoteToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -30,7 +30,7 @@ import java.util.Random;
routingType = "DIRECT",
categoryKey = "smp"
)
public class DailyQuoteToolUseCaseImpl extends AbstractMcpToolService implements DailyQuoteToolUseCase {
public class DailyQuoteToolUseCaseImpl extends AbstractMcpToolUseCase implements DailyQuoteToolUseCase {
public record DailyQuoteRequest(String category) {}
public record DailyQuoteResponse(String quote, String author) {}

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.smp.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.smp.usecase.ExchangeRateToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClient;
@@ -28,7 +28,7 @@ import org.springframework.web.client.RestClient;
routingType = "DIRECT",
categoryKey = "smp"
)
public class ExchangeRateToolUseCaseImpl extends AbstractMcpToolService implements ExchangeRateToolUseCase {
public class ExchangeRateToolUseCaseImpl extends AbstractMcpToolUseCase implements ExchangeRateToolUseCase {
public record ExchangeRateRequest(String currencyCode) {}
public record ExchangeRateResponse(String baseCurrency, String targetCurrency, double rate) {}

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.smp.usecase.WeatherToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.smp.dto.WeatherRequest;
import io.shinhanlife.dap.mcc.biz.smp.dto.WeatherResponse;
import lombok.extern.slf4j.Slf4j;
@@ -35,7 +35,7 @@ import java.time.format.DateTimeFormatter;
routingType = "DIRECT",
categoryKey = "smp"
)
public class WeatherToolUseCaseImpl extends AbstractMcpToolService implements WeatherToolUseCase {
public class WeatherToolUseCaseImpl extends AbstractMcpToolUseCase implements WeatherToolUseCase {
private final RestClient restClient;

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.biz.sms.usecase.impl;
import io.shinhanlife.dap.lib.annotation.McpFunction;
import io.shinhanlife.dap.lib.annotation.McpTool;
import io.shinhanlife.dap.mcc.biz.sms.usecase.SmsToolUseCase;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.usecase.AbstractMcpToolUseCase;
import io.shinhanlife.dap.mcc.biz.sms.converter.SmsLegacyConverter;
import io.shinhanlife.dap.mcc.biz.sms.dto.SmsSendRequest;
import io.shinhanlife.dap.mcc.biz.sms.legacy.SmsLegacyRequest;
@@ -29,7 +29,7 @@ import java.util.Map;
@Slf4j
@RequiredArgsConstructor
@McpTool(routingType = "EAI", categoryKey = "notification")
public class SmsToolUseCaseImpl extends AbstractMcpToolService implements SmsToolUseCase {
public class SmsToolUseCaseImpl extends AbstractMcpToolUseCase implements SmsToolUseCase {
private final SmsLegacyConverter converter;