forked from kimhyungsik/ax_hub_mcp_tool
Initial commit
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springaicommunity.mcp.annotation.McpToolParam;
|
||||
|
||||
@Data
|
||||
public class SystemStatusRequest {
|
||||
@McpToolParam(description = "조회할 환경명", required = false)
|
||||
private String environment;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SystemStatusResponse {
|
||||
private String systemName;
|
||||
private String environment;
|
||||
private String status;
|
||||
private String checkedAt;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface AccountInquiryUseCase {
|
||||
@McpTool(name = "iam_account_profile", title = "계정 프로필 조회", description = "모의 계정 프로필 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCOUNT_PROFILE")
|
||||
SystemStatusResponse getPrimary(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_account_list", title = "계정 목록 조회", description = "모의 계정 목록 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCOUNT_LIST")
|
||||
SystemStatusResponse getList(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_account_status", title = "계정 상태 조회", description = "모의 계정 상태 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCOUNT_STATUS")
|
||||
SystemStatusResponse getStatus(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_account_role", title = "계정 역할 조회", description = "모의 계정 역할 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCOUNT_ROLE")
|
||||
SystemStatusResponse getDetail(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_account_lock_status", title = "계정 잠금 상태 조회", description = "모의 계정 잠금 상태 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCOUNT_LOCK_STATUS")
|
||||
SystemStatusResponse getContact(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_account_password_expiry", title = "비밀번호 만료일 조회", description = "모의 비밀번호 만료일 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCOUNT_PASSWORD_EXPIRY")
|
||||
SystemStatusResponse getResult(SystemStatusRequest request);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface AuthenticationInquiryUseCase {
|
||||
@McpTool(name = "iam_login_history", title = "로그인 이력 조회", description = "모의 로그인 이력 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_LOGIN_HISTORY")
|
||||
SystemStatusResponse getPrimary(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_authentication_method", title = "인증 수단 조회", description = "모의 인증 수단 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_AUTHENTICATION_METHOD")
|
||||
SystemStatusResponse getList(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_mfa_status", title = "다중 인증 상태 조회", description = "모의 다중 인증 상태 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_MFA_STATUS")
|
||||
SystemStatusResponse getStatus(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_access_token_status", title = "접근 토큰 상태 조회", description = "모의 접근 토큰 상태 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCESS_TOKEN_STATUS")
|
||||
SystemStatusResponse getDetail(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_session_list", title = "세션 목록 조회", description = "모의 세션 목록 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_SESSION_LIST")
|
||||
SystemStatusResponse getContact(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_trusted_device_list", title = "신뢰 기기 목록 조회", description = "모의 신뢰 기기 목록 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_TRUSTED_DEVICE_LIST")
|
||||
SystemStatusResponse getResult(SystemStatusRequest request);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface AuthorizationInquiryUseCase {
|
||||
@McpTool(name = "iam_permission_list", title = "권한 목록 조회", description = "모의 권한 목록 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_PERMISSION_LIST")
|
||||
SystemStatusResponse getPrimary(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_role_list", title = "역할 목록 조회", description = "모의 역할 목록 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ROLE_LIST")
|
||||
SystemStatusResponse getList(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_menu_access", title = "메뉴 접근 권한 조회", description = "모의 메뉴 접근 권한 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_MENU_ACCESS")
|
||||
SystemStatusResponse getStatus(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_resource_access", title = "자원 접근 권한 조회", description = "모의 자원 접근 권한 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_RESOURCE_ACCESS")
|
||||
SystemStatusResponse getDetail(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_approval_authority", title = "결재 권한 조회", description = "모의 결재 권한 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_APPROVAL_AUTHORITY")
|
||||
SystemStatusResponse getContact(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_delegation_status", title = "권한 위임 상태 조회", description = "모의 권한 위임 상태 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_DELEGATION_STATUS")
|
||||
SystemStatusResponse getResult(SystemStatusRequest request);
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface SystemStatusUseCase {
|
||||
@McpTool(name = "iam_system_status", title = "시스템 상태 조회",
|
||||
description = "조회 전용 모의 시스템 상태를 반환합니다.",
|
||||
annotations = @McpTool.McpAnnotations(openWorldHint = false))
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_STATUS")
|
||||
SystemStatusResponse getSystemStatus(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_service_health", title = "서비스 상태 조회", description = "모의 서비스 상태를 조회합니다.")
|
||||
SystemStatusResponse getServiceHealth(SystemStatusRequest request);
|
||||
@McpTool(name = "iam_environment_info", title = "환경 정보 조회", description = "모의 환경 정보를 조회합니다.")
|
||||
SystemStatusResponse getEnvironmentInfo(SystemStatusRequest request);
|
||||
@McpTool(name = "iam_deployment_version", title = "배포 버전 조회", description = "모의 배포 버전을 조회합니다.")
|
||||
SystemStatusResponse getDeploymentVersion(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_access_policy", title = "접근 정책 조회", description = "모의 접근 정책을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_ACCESS_POLICY")
|
||||
SystemStatusResponse getAccessPolicy(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_session_status", title = "세션 상태 조회", description = "모의 세션 상태를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_SESSION_STATUS")
|
||||
SystemStatusResponse getSessionStatus(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_identity_provider_list", title = "인증 제공자 목록 조회", description = "모의 인증 제공자 목록을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_IDENTITY_PROVIDER_LIST")
|
||||
SystemStatusResponse getIdentityProviderList(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_security_event_list", title = "보안 이벤트 목록 조회", description = "모의 보안 이벤트 목록을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_SECURITY_EVENT_LIST")
|
||||
SystemStatusResponse getSecurityEventList(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_privilege_change_history", title = "권한 변경 이력 조회", description = "모의 권한 변경 이력을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_PRIVILEGE_CHANGE_HISTORY")
|
||||
SystemStatusResponse getPrivilegeChangeHistory(SystemStatusRequest request);
|
||||
|
||||
@McpTool(name = "iam_user_group_list", title = "사용자 그룹 목록 조회", description = "모의 사용자 그룹 목록을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_USER_GROUP_LIST")
|
||||
SystemStatusResponse getUserGroupList(SystemStatusRequest request);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.usecase.AccountInquiryUseCase;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class AccountInquiryUseCaseImpl implements AccountInquiryUseCase {
|
||||
@Override
|
||||
public SystemStatusResponse getPrimary(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getList(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getStatus(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getDetail(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getContact(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getResult(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
private SystemStatusResponse mockResponse(SystemStatusRequest request) {
|
||||
SystemStatusResponse response = new SystemStatusResponse();
|
||||
response.setSystemName("AX Hub IAM");
|
||||
response.setEnvironment(request != null && request.getEnvironment() != null && !request.getEnvironment().isBlank() ? request.getEnvironment() : "개발");
|
||||
response.setStatus("정상");
|
||||
response.setCheckedAt(java.time.OffsetDateTime.now().toString());
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.usecase.AuthenticationInquiryUseCase;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class AuthenticationInquiryUseCaseImpl implements AuthenticationInquiryUseCase {
|
||||
@Override
|
||||
public SystemStatusResponse getPrimary(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getList(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getStatus(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getDetail(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getContact(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getResult(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
private SystemStatusResponse mockResponse(SystemStatusRequest request) {
|
||||
SystemStatusResponse response = new SystemStatusResponse();
|
||||
response.setSystemName("AX Hub IAM");
|
||||
response.setEnvironment(request != null && request.getEnvironment() != null && !request.getEnvironment().isBlank() ? request.getEnvironment() : "개발");
|
||||
response.setStatus("정상");
|
||||
response.setCheckedAt(java.time.OffsetDateTime.now().toString());
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.usecase.AuthorizationInquiryUseCase;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class AuthorizationInquiryUseCaseImpl implements AuthorizationInquiryUseCase {
|
||||
@Override
|
||||
public SystemStatusResponse getPrimary(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getList(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getStatus(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getDetail(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getContact(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemStatusResponse getResult(SystemStatusRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
private SystemStatusResponse mockResponse(SystemStatusRequest request) {
|
||||
SystemStatusResponse response = new SystemStatusResponse();
|
||||
response.setSystemName("AX Hub IAM");
|
||||
response.setEnvironment(request != null && request.getEnvironment() != null && !request.getEnvironment().isBlank() ? request.getEnvironment() : "개발");
|
||||
response.setStatus("정상");
|
||||
response.setCheckedAt(java.time.OffsetDateTime.now().toString());
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package io.shinhanlife.dap.mcc.biz.iam.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.dto.SystemStatusResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.iam.usecase.SystemStatusUseCase;
|
||||
import java.time.OffsetDateTime;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class SystemStatusUseCaseImpl implements SystemStatusUseCase {
|
||||
@Override public SystemStatusResponse getServiceHealth(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getEnvironmentInfo(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getDeploymentVersion(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getAccessPolicy(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getSessionStatus(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getIdentityProviderList(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getSecurityEventList(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getPrivilegeChangeHistory(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override public SystemStatusResponse getUserGroupList(SystemStatusRequest request) { return getSystemStatus(request); }
|
||||
@Override
|
||||
public SystemStatusResponse getSystemStatus(SystemStatusRequest request) {
|
||||
SystemStatusResponse response = new SystemStatusResponse();
|
||||
response.setSystemName("AX Hub 시스템");
|
||||
response.setEnvironment(request != null && request.getEnvironment() != null && !request.getEnvironment().isBlank()
|
||||
? request.getEnvironment() : "개발");
|
||||
response.setStatus("정상");
|
||||
response.setCheckedAt(OffsetDateTime.now().toString());
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springaicommunity.mcp.annotation.McpToolParam;
|
||||
|
||||
@Data
|
||||
public class SystemNoticeRequest {
|
||||
@McpToolParam(description = "공지 분류", required = false)
|
||||
private String category;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.dto;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SystemNoticeResponse {
|
||||
private List<Notice> notices;
|
||||
|
||||
@Data
|
||||
public static class Notice {
|
||||
private String title;
|
||||
private String priority;
|
||||
private String publishedDate;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface MaintenanceInquiryUseCase {
|
||||
@McpTool(name = "pct_maintenance_schedule", title = "점검 일정 조회", description = "모의 점검 일정 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_MAINTENANCE_SCHEDULE")
|
||||
SystemNoticeResponse getPrimary(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_maintenance_history", title = "점검 이력 조회", description = "모의 점검 이력 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_MAINTENANCE_HISTORY")
|
||||
SystemNoticeResponse getList(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_maintenance_scope", title = "점검 범위 조회", description = "모의 점검 범위 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_MAINTENANCE_SCOPE")
|
||||
SystemNoticeResponse getStatus(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_maintenance_status", title = "점검 진행 상태 조회", description = "모의 점검 진행 상태 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_MAINTENANCE_STATUS")
|
||||
SystemNoticeResponse getDetail(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_maintenance_contact", title = "점검 담당자 조회", description = "모의 점검 담당자 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_MAINTENANCE_CONTACT")
|
||||
SystemNoticeResponse getContact(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_maintenance_result", title = "점검 결과 조회", description = "모의 점검 결과 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_MAINTENANCE_RESULT")
|
||||
SystemNoticeResponse getResult(SystemNoticeRequest request);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface ReleaseInquiryUseCase {
|
||||
@McpTool(name = "pct_release_notice", title = "배포 공지 조회", description = "모의 배포 공지 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_RELEASE_NOTICE")
|
||||
SystemNoticeResponse getPrimary(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_release_history", title = "배포 이력 조회", description = "모의 배포 이력 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_RELEASE_HISTORY")
|
||||
SystemNoticeResponse getList(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_release_schedule", title = "배포 일정 조회", description = "모의 배포 일정 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_RELEASE_SCHEDULE")
|
||||
SystemNoticeResponse getStatus(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_release_version", title = "배포 버전 조회", description = "모의 배포 버전 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_RELEASE_VERSION")
|
||||
SystemNoticeResponse getDetail(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_release_scope", title = "배포 범위 조회", description = "모의 배포 범위 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_RELEASE_SCOPE")
|
||||
SystemNoticeResponse getContact(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_release_status", title = "배포 상태 조회", description = "모의 배포 상태 조회 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_RELEASE_STATUS")
|
||||
SystemNoticeResponse getResult(SystemNoticeRequest request);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.usecase;
|
||||
|
||||
import io.shinhanlife.dap.lib.annotation.GrowToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
|
||||
public interface SystemNoticeUseCase {
|
||||
@McpTool(name = "pct_notice_list", title = "시스템 공지 조회", description = "모의 시스템 공지 목록을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_NOTICE_LIST")
|
||||
SystemNoticeResponse getSystemNotices(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_notice_search", title = "공지 검색 조회", description = "모의 공지 검색 결과를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_NOTICE_SEARCH")
|
||||
SystemNoticeResponse getNoticeSearch(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_notice_recent", title = "최신 공지 조회", description = "모의 최신 공지를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_NOTICE_RECENT")
|
||||
SystemNoticeResponse getRecentNotices(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_alert_list", title = "알림 목록 조회", description = "모의 알림 목록을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_ALERT_LIST")
|
||||
SystemNoticeResponse getAlertList(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_notice_detail", title = "공지 상세 조회", description = "모의 공지 상세 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_NOTICE_DETAIL")
|
||||
SystemNoticeResponse getNoticeDetail(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_notice_category", title = "공지 분류 조회", description = "모의 공지 분류 정보를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_NOTICE_CATEGORY")
|
||||
SystemNoticeResponse getNoticeCategory(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_incident_list", title = "장애 목록 조회", description = "모의 장애 목록을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_INCIDENT_LIST")
|
||||
SystemNoticeResponse getIncidentList(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_change_request_list", title = "변경 요청 목록 조회", description = "모의 변경 요청 목록을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_CHANGE_REQUEST_LIST")
|
||||
SystemNoticeResponse getChangeRequestList(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_operation_calendar", title = "운영 일정 조회", description = "모의 운영 일정을 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_OPERATION_CALENDAR")
|
||||
SystemNoticeResponse getOperationCalendar(SystemNoticeRequest request);
|
||||
|
||||
@McpTool(name = "pct_service_request_status", title = "서비스 요청 상태 조회", description = "모의 서비스 요청 상태를 조회합니다.")
|
||||
@GrowToolHint(requiresApproval = false, categoryKey = "pct", mappingId = "DIRECT_PCT_SERVICE_REQUEST_STATUS")
|
||||
SystemNoticeResponse getServiceRequestStatus(SystemNoticeRequest request);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.usecase.MaintenanceInquiryUseCase;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class MaintenanceInquiryUseCaseImpl implements MaintenanceInquiryUseCase {
|
||||
@Override
|
||||
public SystemNoticeResponse getPrimary(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getList(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getStatus(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getDetail(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getContact(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getResult(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
private SystemNoticeResponse mockResponse(SystemNoticeRequest request) {
|
||||
SystemNoticeResponse.Notice notice = new SystemNoticeResponse.Notice();
|
||||
notice.setTitle("점검 정보 조회");
|
||||
notice.setPriority("보통");
|
||||
notice.setPublishedDate("2026-08-13");
|
||||
SystemNoticeResponse response = new SystemNoticeResponse();
|
||||
response.setNotices(java.util.List.of(notice));
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.usecase.ReleaseInquiryUseCase;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class ReleaseInquiryUseCaseImpl implements ReleaseInquiryUseCase {
|
||||
@Override
|
||||
public SystemNoticeResponse getPrimary(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getList(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getStatus(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getDetail(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getContact(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemNoticeResponse getResult(SystemNoticeRequest request) {
|
||||
return mockResponse(request);
|
||||
}
|
||||
|
||||
private SystemNoticeResponse mockResponse(SystemNoticeRequest request) {
|
||||
SystemNoticeResponse.Notice notice = new SystemNoticeResponse.Notice();
|
||||
notice.setTitle("배포 정보 조회");
|
||||
notice.setPriority("보통");
|
||||
notice.setPublishedDate("2026-08-13");
|
||||
SystemNoticeResponse response = new SystemNoticeResponse();
|
||||
response.setNotices(java.util.List.of(notice));
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package io.shinhanlife.dap.mcc.biz.pct.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.dto.SystemNoticeResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.pct.usecase.SystemNoticeUseCase;
|
||||
import java.util.List;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class SystemNoticeUseCaseImpl implements SystemNoticeUseCase {
|
||||
@Override public SystemNoticeResponse getSystemNotices(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getNoticeSearch(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getRecentNotices(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getAlertList(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getNoticeDetail(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getNoticeCategory(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getIncidentList(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getChangeRequestList(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getOperationCalendar(SystemNoticeRequest request) { return mockResponse(); }
|
||||
@Override public SystemNoticeResponse getServiceRequestStatus(SystemNoticeRequest request) { return mockResponse(); }
|
||||
|
||||
private SystemNoticeResponse mockResponse() {
|
||||
SystemNoticeResponse.Notice notice = new SystemNoticeResponse.Notice();
|
||||
notice.setTitle("정기 점검 안내");
|
||||
notice.setPriority("보통");
|
||||
notice.setPublishedDate("2026-08-13");
|
||||
SystemNoticeResponse response = new SystemNoticeResponse();
|
||||
response.setNotices(List.of(notice));
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package io.shinhanlife.dap.mcc.sys;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import io.shinhanlife.dap.lib.mcp.ToolMcpServerConfiguration;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.sys
|
||||
* @className DapWasSysApplication
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author system
|
||||
* @create 2026.08.13
|
||||
* <pre>
|
||||
* ---------- 개정이력 ----------
|
||||
* 수정일 수정자 수정내용
|
||||
* ---------- -------- ---------------------------
|
||||
* 2026.08.13 system 최초생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib"})
|
||||
@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib"})
|
||||
@EnableCaching
|
||||
@Import(ToolMcpServerConfiguration.class)
|
||||
public class DapWasSysApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DapWasSysApplication.class, args);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user