Initial commit

This commit is contained in:
jade
2026-08-14 18:16:14 +09:00
commit 22f4fab58d
656 changed files with 22614 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}