diff --git a/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/dto/TeamContactRequest.java b/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/dto/TeamContactRequest.java new file mode 100644 index 00000000..a3db3a10 --- /dev/null +++ b/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/dto/TeamContactRequest.java @@ -0,0 +1,10 @@ +package io.shinhanlife.dap.mcc.biz.iam.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class TeamContactRequest { + @Schema(description = "조회할 대상 (예: 전체, AX 추진팀, MCP 팀, TOOL 팀, 담당자)", defaultValue = "전체") + private String target; +} diff --git a/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/TeamContactUseCase.java b/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/TeamContactUseCase.java index f813fef6..557747d9 100644 --- a/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/TeamContactUseCase.java +++ b/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/TeamContactUseCase.java @@ -1,11 +1,12 @@ package io.shinhanlife.dap.mcc.biz.iam.usecase; import io.shinhanlife.dap.lib.annotation.GrowToolHint; +import io.shinhanlife.dap.mcc.biz.iam.dto.TeamContactRequest; import org.springaicommunity.mcp.annotation.McpTool; public interface TeamContactUseCase { - @McpTool(name = "iam_team_contact", title = "팀 연락처 및 담당자 조회", description = "AX 팀, MCP 담당자, 툴 담당자 등 팀 내 주요 담당자 연락처 및 정보를 제공합니다. 담당자가 누군지 물어볼 때 사용하세요.") + @McpTool(name = "iam_team_contact", title = "팀 연락처 및 담당자 조회", description = "AX 팀, MCP 팀, TOOL 팀 등 특정 팀이나 전체 팀의 인원 및 담당자 정보를 조회합니다. 대상을 입력하여 원하는 정보만 필터링하여 받을 수 있습니다.") @GrowToolHint(requiresApproval = false, categoryKey = "iam", mappingId = "DIRECT_IAM_TEAM_CONTACT") - String getTeamContactInfo(); + String getTeamContactInfo(TeamContactRequest request); } diff --git a/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/impl/TeamContactUseCaseImpl.java b/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/impl/TeamContactUseCaseImpl.java index 48a54291..f72e169e 100644 --- a/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/impl/TeamContactUseCaseImpl.java +++ b/dap-was-sys/src/main/java/io/shinhanlife/dap/mcc/biz/iam/usecase/impl/TeamContactUseCaseImpl.java @@ -1,5 +1,6 @@ package io.shinhanlife.dap.mcc.biz.iam.usecase.impl; +import io.shinhanlife.dap.mcc.biz.iam.dto.TeamContactRequest; import io.shinhanlife.dap.mcc.biz.iam.usecase.TeamContactUseCase; import org.springframework.stereotype.Service; @@ -7,14 +8,26 @@ import org.springframework.stereotype.Service; public class TeamContactUseCaseImpl implements TeamContactUseCase { @Override - public String getTeamContactInfo() { - return "=================================================\n" + - "[ 신한라이프 AX HUB 팀 전체 인원 안내 ]\n" + - "=================================================\n" + - "- AX 추진팀: 박세진 프로\n" + - "- MCP & TOOL 팀 담당자: 윤희준 이사\n" + - "- MCP 팀: 고석민 수석, 장효원 책임\n" + - "- TOOL 팀: 김형식 수석, 김영진 책임, 김도겸 대리, 이주희 선임, 문주현 선임, 이보람 대리, 박수빈 대리\n" + - "================================================="; + public String getTeamContactInfo(TeamContactRequest request) { + String target = request != null && request.getTarget() != null ? request.getTarget() : "전체"; + + if (target.contains("AX") || target.contains("추진")) { + return "- AX 추진팀: 박세진 프로\n"; + } else if (target.contains("이사") || target.contains("담당자") || target.contains("윤희준")) { + return "- MCP & TOOL 팀 담당자: 윤희준 이사\n"; + } else if (target.contains("MCP")) { + return "- MCP 팀: 고석민 수석, 장효원 책임\n"; + } else if (target.contains("TOOL") || target.contains("툴")) { + return "- TOOL 팀: 김형식 수석, 김영진 책임, 김도겸 대리, 이주희 선임, 문주현 선임, 이보람 대리, 박수빈 대리\n"; + } else { + return "=================================================\n" + + "[ 신한라이프 AX HUB 팀 전체 인원 안내 ]\n" + + "=================================================\n" + + "- AX 추진팀: 박세진 프로\n" + + "- MCP & TOOL 팀 담당자: 윤희준 이사\n" + + "- MCP 팀: 고석민 수석, 장효원 책임\n" + + "- TOOL 팀: 김형식 수석, 김영진 책임, 김도겸 대리, 이주희 선임, 문주현 선임, 이보람 대리, 박수빈 대리\n" + + "================================================="; + } } }