고객 통합 안내이력 조회 sample 생성
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.converter;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CcCstUnfcNotiCarhDto;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolRequest;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io.ONILD0320_I;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io.ONILD0320_O.CstUnfcNotiCarhInqrOutDto;
|
||||
import org.mapstruct.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface CustomerGuidanceToolConverter {
|
||||
|
||||
/**
|
||||
* 고객통합이력조회 전사 Request -> I/F
|
||||
*/
|
||||
@Mapping(target = "cstUnfcNotiCarhInqrInDto.inqrEndYmd", source = "inqrEndYmd")
|
||||
@Mapping(target = "cstUnfcNotiCarhInqrInDto.inqrStrtYmd", source = "inqrStrtYmd")
|
||||
@Mapping(target = "cstUnfcNotiCarhInqrInDto.notiPmlMdCd", source = "notiPmlMdCd")
|
||||
@Mapping(target = "cstUnfcNotiCarhInqrInDto.ntleCd", source = "ntleCd")
|
||||
@Mapping(target = "cstUnfcNotiCarhInqrInDto.csNo", source = "csNo")
|
||||
public abstract ONILD0320_I toONILD0320_I(CustomerGuidanceToolRequest req);
|
||||
|
||||
@Named("toCcCstUnfcNotiCarhDto")
|
||||
public abstract CcCstUnfcNotiCarhDto toCcCstUnfcNotiCarhDto(CstUnfcNotiCarhInqrOutDto cstUnfcNotiCarhInqrOutDto);
|
||||
|
||||
@IterableMapping(qualifiedByName = "toCcCstUnfcNotiCarhDto")
|
||||
public abstract List<CcCstUnfcNotiCarhDto> toCcCstUnfcNotiCarhDtoList(List<CstUnfcNotiCarhInqrOutDto> cstUnfcNotiCarhInqrOutDto);
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Builder
|
||||
@Data
|
||||
public class CcCstUnfcNotiCarhDto {
|
||||
@Schema(description = "고객번호", example = "CUST123")
|
||||
private String csNo;
|
||||
|
||||
@Schema(description = "안내일시", example = "20260812093000")
|
||||
private String notiDt;
|
||||
|
||||
@Schema(description = "발송일련번호", example = "1")
|
||||
private int pmlSriaNo;
|
||||
|
||||
@Schema(description = "안내신청상세일시", example = "20260812092500")
|
||||
private String notiPetDtptDt;
|
||||
|
||||
@Schema(description = "안내장코드", example = "NT001")
|
||||
private String ntleCd;
|
||||
|
||||
@Schema(description = "안내장명", example = "카드대금 결제일 안내")
|
||||
private String ntleNm;
|
||||
|
||||
@Schema(description = "안내발송일련번호", example = "10")
|
||||
private int notiPmlSriaNo;
|
||||
|
||||
@Schema(description = "안내발송방법코드", example = "SMS")
|
||||
private String notiPmlMdCd;
|
||||
|
||||
@Schema(description = "안내수신정보암호화내용", example = "AbC123EncRypTed==")
|
||||
private String notiRcvInfoEncrCt;
|
||||
|
||||
@Schema(description = "메시지ID", example = "MSG20260812000001")
|
||||
private String msgId;
|
||||
|
||||
@Schema(description = "안내내용", example = "8월 카드대금 결제일은 8월 25일입니다.")
|
||||
private String notiCt;
|
||||
|
||||
@Schema(description = "통합안내발송결과코드", example = "00")
|
||||
private String unfcNotiPmlRsltCd;
|
||||
|
||||
@Schema(description = "통합안내발송결과상세코드", example = "0001")
|
||||
private String unfcNotiPmlRsltDtptCd;
|
||||
|
||||
@Schema(description = "발송시스템코드", example = "SYS01")
|
||||
private String pmlSystCd;
|
||||
|
||||
@Schema(description = "발송조직번호", example = "1001")
|
||||
private String pmlOgnzNo;
|
||||
|
||||
@Schema(description = "발송조직명", example = "고객지원팀")
|
||||
private String pmlOgnzNm;
|
||||
|
||||
@Schema(description = "발신기관조직명", example = "카드사업본부")
|
||||
private String msdilttOgnzNm;
|
||||
|
||||
@Schema(description = "조회구분명", example = "전체")
|
||||
private String inqrDvsnNm;
|
||||
|
||||
@Schema(description = "등록일시", example = "20260812090000")
|
||||
private String rgiDt;
|
||||
|
||||
@Schema(description = "등록자명", example = "홍길동")
|
||||
private String rgstNm;
|
||||
|
||||
@Schema(description = "등록자조직명", example = "고객지원팀")
|
||||
private String rgstOgnzNm;
|
||||
|
||||
@Schema(description = "최종변경자명", example = "김철수")
|
||||
private String lstPrwpNm;
|
||||
|
||||
@Schema(description = "최종변경일시", example = "20260812101500")
|
||||
private String lstChgDt;
|
||||
|
||||
@Schema(description = "최종변경자조직명", example = "운영지원팀")
|
||||
private String lstPrwpOgnzNm;
|
||||
|
||||
@Schema(description = "원천회사구분코드", example = "01")
|
||||
private String oriCpnyDvsnCd;
|
||||
|
||||
@Schema(description = "고객한글명", example = "이보람")
|
||||
private String cstHanNm;
|
||||
|
||||
@Schema(description = "시스템등록인사번호", example = "20260001")
|
||||
private String systRgiPrafNo;
|
||||
|
||||
@Schema(description = "시스템변경인사번호", example = "20260002")
|
||||
private String systChgPrafNo;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
@Data
|
||||
@Getter
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class CustomerGuidanceToolRequest {
|
||||
@Schema(description = "고객번호", example = "CUST123")
|
||||
private String csNo;
|
||||
|
||||
@Schema(description = "안내장코드", example = "ab12321")
|
||||
private String ntleCd;
|
||||
|
||||
@Schema(description = "안내발송방법코드", example = "aa")
|
||||
private String notiPmlMdCd;
|
||||
|
||||
@Schema(description = "조회시작일자", example = "20260101")
|
||||
private String inqrStrYmd;
|
||||
|
||||
@Schema(description = "조회종료일자", example = "20260101")
|
||||
private String inqrEndYmd;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class CustomerGuidanceToolResponse {
|
||||
|
||||
private String resultCode;
|
||||
|
||||
private String resultMessage;
|
||||
|
||||
private List<CcCstUnfcNotiCarhDto> ccCstUnfcNotiCarhDtoList;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase;
|
||||
|
||||
import io.shinhanlife.glow.BaseResponse;
|
||||
import org.springaicommunity.mcp.annotation.McpTool;
|
||||
import io.shinhanlife.dap.lib.annotation.ToolHint;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolResponse;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.biz.cmm.usecase
|
||||
* @className CustomerGuidanceToolUseCase
|
||||
* @description AX HUB ?쒖뒪??泥섎━ ?대옒??
|
||||
* @author Boram
|
||||
* @create 2026.08.12
|
||||
* <pre>
|
||||
* ---------- 媛쒖젙?대젰 ----------
|
||||
* ?섏젙?? ?섏젙?? ?섏젙?댁슜
|
||||
* ---------- -------- ---------------------------
|
||||
* 2026.08.12 Boram 理쒖큹?앹꽦
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public interface CustomerGuidanceToolUseCase {
|
||||
|
||||
@McpTool(name = "cmm_customer_tool", title = "고객 통합 안내이력 조회", description = "고객의 통합 안내 이력을 조회하는 도구입니다. 고객 ID와 조회 기간을 입력하면 해당 기간 동안의 안내 이력을 반환합니다.")
|
||||
@ToolHint(register = false, categoryKey = "cmm", mappingId = "ONILD0320")
|
||||
CustomerGuidanceToolResponse execute(CustomerGuidanceToolRequest req) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CcCstUnfcNotiCarhDto;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolResponse;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.usecase.CustomerGuidanceToolUseCase;
|
||||
import io.shinhanlife.glow.BaseResponse;
|
||||
import io.shinhanlife.glow.ResponseUtil;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.converter.CustomerGuidanceToolConverter;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io.ONILD0320_I;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io.ONILD0320_O;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.MciNildClient;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.biz.cmm.usecase.impl
|
||||
* @className CustomerGuidanceToolUseCaseImpl
|
||||
* @description AX HUB ?쒖뒪??泥섎━ ?대옒??
|
||||
* @author Boram
|
||||
* @create 2026.08.12
|
||||
* <pre>
|
||||
* ---------- 媛쒖젙?대젰 ----------
|
||||
* ?섏젙?? ?섏젙?? ?섏젙?댁슜
|
||||
* ---------- -------- ---------------------------
|
||||
* 2026.08.12 Boram 理쒖큹?앹꽦
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CustomerGuidanceToolUseCaseImpl implements CustomerGuidanceToolUseCase {
|
||||
|
||||
private final MciNildClient mci;
|
||||
private final CustomerGuidanceToolConverter converter;
|
||||
|
||||
@Override
|
||||
public CustomerGuidanceToolResponse execute(CustomerGuidanceToolRequest req) throws Exception {
|
||||
ONILD0320_I onild0320_i = converter.toONILD0320_I(req);
|
||||
ONILD0320_O onild0320_o = mci.callOnild0320(onild0320_i);
|
||||
|
||||
List<CcCstUnfcNotiCarhDto> ccCstUnfcNotiCarhDtoList = converter.toCcCstUnfcNotiCarhDtoList(onild0320_o.getCstUnfcNotiCarhInqrOutDto());
|
||||
|
||||
return CustomerGuidanceToolResponse.builder()
|
||||
.ccCstUnfcNotiCarhDtoList(ccCstUnfcNotiCarhDtoList)
|
||||
.resultCode("SUCCESS")
|
||||
.resultMessage("")
|
||||
.build();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolResponse;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io.ONILD0320_I;
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io.ONILD0320_O;
|
||||
import io.shinhanlife.glow.BizException;
|
||||
import io.shinhanlife.glow.GlowLogger;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import io.shinhanlife.dap.lib.integration.mci.component.AxhubMciComponent;
|
||||
import io.shinhanlife.glow.communication.dto.Transfer;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.infra.itrf.mci.nild
|
||||
* @className MciNildClient
|
||||
* @description AX HUB ?쒖뒪??泥섎━ ?대옒??
|
||||
* @author Boram
|
||||
* @create 2026.08.12
|
||||
* <pre>
|
||||
* ---------- 媛쒖젙?대젰 ----------
|
||||
* ?섏젙?? ?섏젙?? ?섏젙?댁슜
|
||||
* ---------- -------- ---------------------------
|
||||
* 2026.08.12 Boram 理쒖큹?앹꽦
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class MciNildClient {
|
||||
private final AxhubMciComponent mci;
|
||||
private final GlowLogger log;
|
||||
|
||||
public ONILD0320_O callOnild0320(ONILD0320_I onild0320_i){
|
||||
try {
|
||||
Transfer<ONILD0320_O> resTransfer = mci.callTo(
|
||||
"CTMNILO00007",
|
||||
null,
|
||||
onild0320_i,
|
||||
ONILD0320_O.class
|
||||
);
|
||||
|
||||
ONILD0320_O onild0320_o = resTransfer.getBody();
|
||||
|
||||
return onild0320_o;
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.shinhanlife.glow.GlowMciFieldInfo;
|
||||
import io.shinhanlife.glow.communication.annotation.GlowTrgmField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
@Data
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
public class ONILD0320_I {
|
||||
|
||||
@GlowTrgmField(order = 1, description = "고객 통합 안내이력 조회", type="gs")
|
||||
private CstUnfcNotiCarhInqrInDto cstUnfcNotiCarhInqrInDto;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
public static class CstUnfcNotiCarhInqrInDto {
|
||||
|
||||
@GlowMciFieldInfo(order = 1, length = 5, description = "고객번호")
|
||||
private String csNo;
|
||||
|
||||
@GlowMciFieldInfo(order = 2, length = 5, description = "안내장코드")
|
||||
private String ntleCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 3, length = 5, description = "안내발송방법코드")
|
||||
private String notiPmlMdCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 4, length = 5, description = "조회시작일자")
|
||||
private String inqrStrtYmd;
|
||||
|
||||
@GlowMciFieldInfo(order = 5, length = 5, description = "조회종료일자")
|
||||
private String inqrEndYmd;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package io.shinhanlife.dap.mcc.infra.itrf.mci.nil.d.io;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.shinhanlife.glow.GlowMciFieldInfo;
|
||||
import io.shinhanlife.glow.communication.annotation.GlowTrgmField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
public class ONILD0320_O {
|
||||
|
||||
@GlowTrgmField(order = 1, description = "고객 통합 안내이력 조회out", type="gm")
|
||||
private List<CstUnfcNotiCarhInqrOutDto> cstUnfcNotiCarhInqrOutDto;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
public static class CstUnfcNotiCarhInqrOutDto {
|
||||
|
||||
@GlowMciFieldInfo(order = 1, length = 5, description = "고객번호")
|
||||
private String csNo;
|
||||
|
||||
@GlowMciFieldInfo(order = 2, length = 5, description = "안내일시")
|
||||
private String notiDt;
|
||||
|
||||
@GlowMciFieldInfo(order = 3, length = 5, description = "발송일련번호")
|
||||
private int pmlSriaNo;
|
||||
|
||||
@GlowMciFieldInfo(order = 4, length = 5, description = "안내신청상세일시")
|
||||
private String notiPetDtptDt;
|
||||
|
||||
@GlowMciFieldInfo(order = 5, length = 5, description = "안내장코드")
|
||||
private String ntleCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 6, length = 5, description = "안내장명")
|
||||
private String ntleNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 7, length = 5, description = "안내발송일련번호")
|
||||
private int notiPmlSriaNo;
|
||||
|
||||
@GlowMciFieldInfo(order = 8, length = 5, description = "안내발송방법코드")
|
||||
private String notiPmlMdCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 9, length = 5, description = "안내수신정보암호화내용")
|
||||
private String notiRcvInfoEncrCt;
|
||||
|
||||
@GlowMciFieldInfo(order = 10, length = 5, description = "메시지ID")
|
||||
private String msgId;
|
||||
|
||||
@GlowMciFieldInfo(order = 11, length = 5, description = "안내내용")
|
||||
private String notiCt;
|
||||
|
||||
@GlowMciFieldInfo(order = 12, length = 5, description = "통합안내발송결과코드")
|
||||
private String unfcNotiPmlRsltCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 13, length = 5, description = "통합안내발송결과상세코드")
|
||||
private String unfcNotiPmlRsltDtptCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 14, length = 5, description = "발송시스템코드")
|
||||
private String pmlSystCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 15, length = 5, description = "발송조직번호")
|
||||
private String pmlOgnzNo;
|
||||
|
||||
@GlowMciFieldInfo(order = 16, length = 5, description = "발송조직명")
|
||||
private String pmlOgnzNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 17, length = 5, description = "발신기관조직명")
|
||||
private String msdilttOgnzNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 18, length = 5, description = "조회구분명")
|
||||
private String inqrDvsnNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 19, length = 5, description = "등록일시")
|
||||
private String rgiDt;
|
||||
|
||||
@GlowMciFieldInfo(order = 20, length = 5, description = "등록자명")
|
||||
private String rgstNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 21, length = 5, description = "등록자조직명")
|
||||
private String rgstOgnzNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 22, length = 5, description = "최종변경자명")
|
||||
private String lstPrwpNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 23, length = 5, description = "최종변경일시")
|
||||
private String lstChgDt;
|
||||
|
||||
@GlowMciFieldInfo(order = 24, length = 5, description = "최종변경자조직명")
|
||||
private String lstPrwpOgnzNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 25, length = 5, description = "원천회사구분코드")
|
||||
private String oriCpnyDvsnCd;
|
||||
|
||||
@GlowMciFieldInfo(order = 26, length = 5, description = "고객한글명")
|
||||
private String cstHanNm;
|
||||
|
||||
@GlowMciFieldInfo(order = 27, length = 5, description = "시스템등록인사번호")
|
||||
private String systRgiPrafNo;
|
||||
|
||||
@GlowMciFieldInfo(order = 28, length = 5, description = "시스템변경인사번호")
|
||||
private String systChgPrafNo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"resultCode" : "SUCCESS",
|
||||
"data" : "[{\"date\":\"2024-01-05\",\"message\":\"안내 내용\"}]"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package io.shinhanlife.dap.mcc.biz.cmm.usecase;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolRequest;
|
||||
import io.shinhanlife.dap.mcc.biz.cmm.dto.CustomerGuidanceToolResponse;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class CustomerGuidanceToolUseCaseTest {
|
||||
|
||||
@Test
|
||||
void createsToolRequestAndResponseDtos() {
|
||||
assertNotNull(new CustomerGuidanceToolRequest());
|
||||
assertNotNull(new CustomerGuidanceToolResponse());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user