refactor: 기존 kakao -> v1으로 패키지 변경 적용
parent
861e49e7b8
commit
4545e29e3a
@ -0,0 +1,178 @@
|
|||||||
|
// package kr.xit.ens.kakao.v1.web;
|
||||||
|
//
|
||||||
|
// import org.springframework.http.MediaType;
|
||||||
|
// import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
// import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
// import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
// import org.springframework.web.bind.annotation.RestController;
|
||||||
|
//
|
||||||
|
// import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
// import io.swagger.v3.oas.annotations.media.Content;
|
||||||
|
// import io.swagger.v3.oas.annotations.media.ExampleObject;
|
||||||
|
// import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
// import kr.xit.biz.ens.model.kakao.v1.KkopayDocAttrDTO;
|
||||||
|
// import kr.xit.biz.ens.model.kakao.v1.KkopayDocBulkDTO;
|
||||||
|
// import kr.xit.biz.ens.model.kakao.v1.KkopayDocDTO;
|
||||||
|
// import kr.xit.core.model.ApiResponseDTO;
|
||||||
|
// import kr.xit.core.model.IApiResponse;
|
||||||
|
// import kr.xit.ens.kakao.v1.service.IAsyncKkopayEltrcDocService;
|
||||||
|
// import lombok.RequiredArgsConstructor;
|
||||||
|
// import lombok.extern.slf4j.Slf4j;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * <pre>
|
||||||
|
// * description : 카카오 페이 전자 문서 발송 비동기용 controller
|
||||||
|
// * packageName : kr.xit.ens.kakao.v1.web
|
||||||
|
// * fileName : AsyncKkopayEltrcDocController
|
||||||
|
// * author : julim
|
||||||
|
// * date : 2023-04-28
|
||||||
|
// * ======================================================================
|
||||||
|
// * 변경일 변경자 변경 내용
|
||||||
|
// * ----------------------------------------------------------------------
|
||||||
|
// * 2023-04-28 julim 최초 생성
|
||||||
|
// *
|
||||||
|
// * </pre>
|
||||||
|
// */
|
||||||
|
// @Tag(name = "AsyncKkopayEltrcDocController", description = "카카오페이 MyDoc API(비동기)")
|
||||||
|
// @Slf4j
|
||||||
|
// @RequiredArgsConstructor
|
||||||
|
// @RestController
|
||||||
|
// @RequestMapping(value = "/api/ens/kakao/v2")
|
||||||
|
// public class AsyncKkopayEltrcDocController {
|
||||||
|
//
|
||||||
|
// private final IAsyncKkopayEltrcDocService service;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * <pre>
|
||||||
|
// * 모바일웹 연계 문서발송 요청
|
||||||
|
// * -.이용기관 서버에서 전자문서 서버로 문서발송 처리를 요청합니다.
|
||||||
|
// * </pre>
|
||||||
|
// * @param reqDTO KkopayDocDTO.SendRequest
|
||||||
|
// * @return ApiResponseDTO{@literal <KkopayDocDTO.SendResponse>}
|
||||||
|
// */
|
||||||
|
// @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
|
||||||
|
// @Content(mediaType = "application/json", examples = {
|
||||||
|
// @ExampleObject(value = """
|
||||||
|
// {
|
||||||
|
// "document": {
|
||||||
|
// "title": "문서 제목",
|
||||||
|
// "read_expired_sec": 3600,
|
||||||
|
// "hash": "6EFE827AC88914DE471C621AE",
|
||||||
|
// "common_categories": [
|
||||||
|
// "NOTICE"
|
||||||
|
// ],
|
||||||
|
// "receiver": {
|
||||||
|
// "phone_number": "01093414345",
|
||||||
|
// "name": "김지호",
|
||||||
|
// "birthday": "19831218",
|
||||||
|
// "is_required_verify_name": false
|
||||||
|
// },
|
||||||
|
// "property": {
|
||||||
|
// "link": "http://ip:8081/api/kakaopay/v1/ott",
|
||||||
|
// "cs_number": "02-123-4567",
|
||||||
|
// "cs_name": "콜센터",
|
||||||
|
// "payload": "payload 파라미터 입니다.",
|
||||||
|
// "message": "해당 안내문은 다음과 같습니다."
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// "signguCode": "88328",
|
||||||
|
// "ffnlgCode": "11"
|
||||||
|
// }
|
||||||
|
// """)
|
||||||
|
// })
|
||||||
|
// })
|
||||||
|
// @Operation(hidden = true, summary = "문서발송 요청", description = "카카오페이 전자문서 서버로 문서발송 처리를 요청")
|
||||||
|
// @PostMapping(value = "/documents", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
// public IApiResponse requestSend(
|
||||||
|
// @RequestBody final KkopayDocDTO.SendRequest reqDTO
|
||||||
|
// ) {
|
||||||
|
// return ApiResponseDTO.of(service.requestSend(reqDTO));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * <pre>
|
||||||
|
// * 토큰 유효성 검증(Redirect URL 접속 허용/불허)
|
||||||
|
// * </pre>
|
||||||
|
// * @param reqDTO KkopayDocDTO.ValidTokenRequest
|
||||||
|
// * @return ApiResponseDTO<KkopayDocDTO.ValidTokenResponse>
|
||||||
|
// */
|
||||||
|
// @Operation(hidden = true, summary = "토큰 유효성 검증", description = "Redirect URL 접속 허용/불허")
|
||||||
|
// @PostMapping(value = "/validToken", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
// public IApiResponse validToken(
|
||||||
|
// @RequestBody final KkopayDocDTO.ValidTokenRequest reqDTO
|
||||||
|
// ) {
|
||||||
|
// return ApiResponseDTO.of(service.validToken(reqDTO));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * <pre>
|
||||||
|
// * 문서 상태 변경 API
|
||||||
|
// * -.문서에 대해서 열람 상태로 변경. 사용자가 문서열람 시(OTT 검증 완료 후 페이지 로딩 완료 시점) 반드시 문서 열람 상태 변경 API를 호출해야 함.
|
||||||
|
// * -.미 호출 시 아래와 같은 문제 발생
|
||||||
|
// * 1)유통증명시스템을 사용하는 경우 해당 API를 호출한 시점으로 열람정보가 등록되어 미 호출 시 열람정보가 등록 되지 않음.
|
||||||
|
// * 2)문서상태조회 API(/v1/documents/{document_binder_uuid}/status) 호출 시 read_at최초 열람시간) 데이터가 내려가지 않음.
|
||||||
|
// * </pre>
|
||||||
|
// * @param reqDTO KkopayDocAttrDTO.DocumentBinderUuid
|
||||||
|
// * @return ApiResponseDTO<Void>
|
||||||
|
// */
|
||||||
|
// @Operation(hidden = true, summary = "문서 상태 변경", description = "문서 상태 변경")
|
||||||
|
// @PostMapping(value = "/modifyStatus", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
// public IApiResponse modifyStatus(
|
||||||
|
// @RequestBody final KkopayDocAttrDTO.DocumentBinderUuid reqDTO
|
||||||
|
// ) {
|
||||||
|
// return ApiResponseDTO.of(service.modifyStatus(reqDTO));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * <pre>
|
||||||
|
// * 문서 상태 조회 API
|
||||||
|
// * -.이용기관 서버에서 카카오페이 전자문서 서버로 문서 상태에 대한 조회를 요청 합니다.
|
||||||
|
// * : 발송된 문서의 진행상태를 알고 싶은 경우, flow와 상관없이 요청 가능
|
||||||
|
// * : polling 방식으로 호출할 경우, 호출 간격은 5초를 권장.
|
||||||
|
// * -.doc_box_status 상태변경순서
|
||||||
|
// * : SENT(송신) > RECEIVED(수신) > READ(열람)/EXPIRED(미열람자료의 기한만료)
|
||||||
|
// * </pre>
|
||||||
|
// * @param reqDTO KkopayDocAttrDTO.DocumentBinderUuid
|
||||||
|
// * @return ApiResponseDTO<KkopayDocDTO.DocStatusResponse>
|
||||||
|
// */
|
||||||
|
// @Operation(hidden = true, summary = "문서 상태 조회", description = "문서 상태 조회")
|
||||||
|
// @PostMapping(value = "/findStatus", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
// public IApiResponse findStatus(
|
||||||
|
// @RequestBody final KkopayDocAttrDTO.DocumentBinderUuid reqDTO
|
||||||
|
// ) {
|
||||||
|
// return ApiResponseDTO.of(service.findStatus(reqDTO));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @Operation(hidden = true, summary = "대량 문서발송 요청", description = "카카오페이 전자문서 서버로 대량 문서발송 처리를 요청")
|
||||||
|
// @PostMapping(value = "/documents/bulk", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
// public IApiResponse requestSendBulk(
|
||||||
|
// @RequestBody final KkopayDocBulkDTO.BulkSendRequests reqDTO
|
||||||
|
// ) {
|
||||||
|
// return ApiResponseDTO.of(service.requestSendBulk(reqDTO));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * <pre>
|
||||||
|
// * 모바일웹 연계 문서발송 요청
|
||||||
|
// * -.이용기관 서버에서 전자문서 서버로 문서발송 처리를 요청합니다.
|
||||||
|
// * </pre>
|
||||||
|
// * @param reqDTO KkopayDocBulkDTO.BulkStatusRequests
|
||||||
|
// * @return ApiResponseDTOApiResponseDTO<BulkStatusResponses.BulkStatusResponses>
|
||||||
|
// */
|
||||||
|
// @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
|
||||||
|
// @Content(mediaType = "application/json", examples = {
|
||||||
|
// @ExampleObject(value = "{\"document_binder_uuids\": [\n"
|
||||||
|
// + " \"BIN-883246dbff7b11edb3bb7affed8a016d\"\n"
|
||||||
|
// + " ]}")
|
||||||
|
// })
|
||||||
|
// })
|
||||||
|
// @Operation(hidden = true, summary = "대량 문서 상태 조회 요청", description = "카카오페이 전자문서 서버로 대량 문서 상태 조회 요청")
|
||||||
|
// @PostMapping(value = "/documents/bulk/status", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
// public IApiResponse findBulkStatus(
|
||||||
|
// @RequestBody final KkopayDocBulkDTO.BulkStatusRequests reqDTO
|
||||||
|
// ) {
|
||||||
|
// return ApiResponseDTO.of(service.findBulkStatus(reqDTO));
|
||||||
|
// }
|
||||||
|
// }
|
@ -1,180 +0,0 @@
|
|||||||
package kr.xit.ens.kakao.web;
|
|
||||||
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Content;
|
|
||||||
import io.swagger.v3.oas.annotations.media.ExampleObject;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import kr.xit.biz.ens.model.kakao.KkopayDocAttrDTO.DocumentBinderUuid;
|
|
||||||
import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO.BulkSendRequests;
|
|
||||||
import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO.BulkStatusRequests;
|
|
||||||
import kr.xit.biz.ens.model.kakao.KkopayDocDTO.SendRequest;
|
|
||||||
import kr.xit.biz.ens.model.kakao.KkopayDocDTO.ValidTokenRequest;
|
|
||||||
import kr.xit.core.model.ApiResponseDTO;
|
|
||||||
import kr.xit.core.model.IApiResponse;
|
|
||||||
import kr.xit.ens.kakao.service.IAsyncKkopayEltrcDocService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* description : 카카오 페이 전자 문서 발송 비동기용 controller
|
|
||||||
* packageName : kr.xit.ens.kakao.web
|
|
||||||
* fileName : AsyncKkopayEltrcDocController
|
|
||||||
* author : julim
|
|
||||||
* date : 2023-04-28
|
|
||||||
* ======================================================================
|
|
||||||
* 변경일 변경자 변경 내용
|
|
||||||
* ----------------------------------------------------------------------
|
|
||||||
* 2023-04-28 julim 최초 생성
|
|
||||||
*
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@Tag(name = "AsyncKkopayEltrcDocController", description = "카카오페이 MyDoc API(비동기)")
|
|
||||||
@Slf4j
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(value = "/api/ens/kakao/v2")
|
|
||||||
public class AsyncKkopayEltrcDocController {
|
|
||||||
|
|
||||||
private final IAsyncKkopayEltrcDocService service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* 모바일웹 연계 문서발송 요청
|
|
||||||
* -.이용기관 서버에서 전자문서 서버로 문서발송 처리를 요청합니다.
|
|
||||||
* </pre>
|
|
||||||
* @param reqDTO KkopayDocDTO.SendRequest
|
|
||||||
* @return ApiResponseDTO{@literal <KkopayDocDTO.SendResponse>}
|
|
||||||
*/
|
|
||||||
@io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
|
|
||||||
@Content(mediaType = "application/json", examples = {
|
|
||||||
@ExampleObject(value = """
|
|
||||||
{
|
|
||||||
"document": {
|
|
||||||
"title": "문서 제목",
|
|
||||||
"read_expired_sec": 3600,
|
|
||||||
"hash": "6EFE827AC88914DE471C621AE",
|
|
||||||
"common_categories": [
|
|
||||||
"NOTICE"
|
|
||||||
],
|
|
||||||
"receiver": {
|
|
||||||
"phone_number": "01093414345",
|
|
||||||
"name": "김지호",
|
|
||||||
"birthday": "19831218",
|
|
||||||
"is_required_verify_name": false
|
|
||||||
},
|
|
||||||
"property": {
|
|
||||||
"link": "http://ip:8081/api/kakaopay/v1/ott",
|
|
||||||
"cs_number": "02-123-4567",
|
|
||||||
"cs_name": "콜센터",
|
|
||||||
"payload": "payload 파라미터 입니다.",
|
|
||||||
"message": "해당 안내문은 다음과 같습니다."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"signguCode": "88328",
|
|
||||||
"ffnlgCode": "11"
|
|
||||||
}
|
|
||||||
""")
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@Operation(hidden = true, summary = "문서발송 요청", description = "카카오페이 전자문서 서버로 문서발송 처리를 요청")
|
|
||||||
@PostMapping(value = "/documents", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public IApiResponse requestSend(
|
|
||||||
@RequestBody final SendRequest reqDTO
|
|
||||||
) {
|
|
||||||
return ApiResponseDTO.of(service.requestSend(reqDTO));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* 토큰 유효성 검증(Redirect URL 접속 허용/불허)
|
|
||||||
* </pre>
|
|
||||||
* @param reqDTO KkopayDocDTO.ValidTokenRequest
|
|
||||||
* @return ApiResponseDTO<KkopayDocDTO.ValidTokenResponse>
|
|
||||||
*/
|
|
||||||
@Operation(hidden = true, summary = "토큰 유효성 검증", description = "Redirect URL 접속 허용/불허")
|
|
||||||
@PostMapping(value = "/validToken", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public IApiResponse validToken(
|
|
||||||
@RequestBody final ValidTokenRequest reqDTO
|
|
||||||
) {
|
|
||||||
return ApiResponseDTO.of(service.validToken(reqDTO));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* 문서 상태 변경 API
|
|
||||||
* -.문서에 대해서 열람 상태로 변경. 사용자가 문서열람 시(OTT 검증 완료 후 페이지 로딩 완료 시점) 반드시 문서 열람 상태 변경 API를 호출해야 함.
|
|
||||||
* -.미 호출 시 아래와 같은 문제 발생
|
|
||||||
* 1)유통증명시스템을 사용하는 경우 해당 API를 호출한 시점으로 열람정보가 등록되어 미 호출 시 열람정보가 등록 되지 않음.
|
|
||||||
* 2)문서상태조회 API(/v1/documents/{document_binder_uuid}/status) 호출 시 read_at최초 열람시간) 데이터가 내려가지 않음.
|
|
||||||
* </pre>
|
|
||||||
* @param reqDTO KkopayDocAttrDTO.DocumentBinderUuid
|
|
||||||
* @return ApiResponseDTO<Void>
|
|
||||||
*/
|
|
||||||
@Operation(hidden = true, summary = "문서 상태 변경", description = "문서 상태 변경")
|
|
||||||
@PostMapping(value = "/modifyStatus", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public IApiResponse modifyStatus(
|
|
||||||
@RequestBody final DocumentBinderUuid reqDTO
|
|
||||||
) {
|
|
||||||
return ApiResponseDTO.of(service.modifyStatus(reqDTO));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* 문서 상태 조회 API
|
|
||||||
* -.이용기관 서버에서 카카오페이 전자문서 서버로 문서 상태에 대한 조회를 요청 합니다.
|
|
||||||
* : 발송된 문서의 진행상태를 알고 싶은 경우, flow와 상관없이 요청 가능
|
|
||||||
* : polling 방식으로 호출할 경우, 호출 간격은 5초를 권장.
|
|
||||||
* -.doc_box_status 상태변경순서
|
|
||||||
* : SENT(송신) > RECEIVED(수신) > READ(열람)/EXPIRED(미열람자료의 기한만료)
|
|
||||||
* </pre>
|
|
||||||
* @param reqDTO KkopayDocAttrDTO.DocumentBinderUuid
|
|
||||||
* @return ApiResponseDTO<KkopayDocDTO.DocStatusResponse>
|
|
||||||
*/
|
|
||||||
@Operation(hidden = true, summary = "문서 상태 조회", description = "문서 상태 조회")
|
|
||||||
@PostMapping(value = "/findStatus", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public IApiResponse findStatus(
|
|
||||||
@RequestBody final DocumentBinderUuid reqDTO
|
|
||||||
) {
|
|
||||||
return ApiResponseDTO.of(service.findStatus(reqDTO));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Operation(hidden = true, summary = "대량 문서발송 요청", description = "카카오페이 전자문서 서버로 대량 문서발송 처리를 요청")
|
|
||||||
@PostMapping(value = "/documents/bulk", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public IApiResponse requestSendBulk(
|
|
||||||
@RequestBody final BulkSendRequests reqDTO
|
|
||||||
) {
|
|
||||||
return ApiResponseDTO.of(service.requestSendBulk(reqDTO));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* 모바일웹 연계 문서발송 요청
|
|
||||||
* -.이용기관 서버에서 전자문서 서버로 문서발송 처리를 요청합니다.
|
|
||||||
* </pre>
|
|
||||||
* @param reqDTO KkopayDocBulkDTO.BulkStatusRequests
|
|
||||||
* @return ApiResponseDTOApiResponseDTO<BulkStatusResponses.BulkStatusResponses>
|
|
||||||
*/
|
|
||||||
@io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
|
|
||||||
@Content(mediaType = "application/json", examples = {
|
|
||||||
@ExampleObject(value = "{\"document_binder_uuids\": [\n"
|
|
||||||
+ " \"BIN-883246dbff7b11edb3bb7affed8a016d\"\n"
|
|
||||||
+ " ]}")
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@Operation(hidden = true, summary = "대량 문서 상태 조회 요청", description = "카카오페이 전자문서 서버로 대량 문서 상태 조회 요청")
|
|
||||||
@PostMapping(value = "/documents/bulk/status", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
public IApiResponse findBulkStatus(
|
|
||||||
@RequestBody final BulkStatusRequests reqDTO
|
|
||||||
) {
|
|
||||||
return ApiResponseDTO.of(service.findBulkStatus(reqDTO));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,23 +1,27 @@
|
|||||||
package kr.xit.biz.ens.model.kakao;
|
package kr.xit.biz.ens.model.kakao.v1;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.Size;
|
import javax.validation.constraints.Size;
|
||||||
|
|
||||||
|
import org.hibernate.validator.constraints.NotEmpty;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import kr.xit.biz.ens.model.cmm.CmmEnsRequestDTO;
|
import kr.xit.biz.ens.model.cmm.CmmEnsRequestDTO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.SuperBuilder;
|
import lombok.experimental.SuperBuilder;
|
||||||
import org.hibernate.validator.constraints.NotEmpty;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* description :
|
* description :
|
||||||
*
|
*
|
||||||
* packageName : kr.xit.biz.ens.model.kakao
|
* packageName : kr.xit.biz.ens.model.kakao.v1
|
||||||
* fileName : KkopayDocBulkDTO
|
* fileName : KkopayDocBulkDTO
|
||||||
* author : limju
|
* author : limju
|
||||||
* date : 2023-05-12
|
* date : 2023-05-12
|
Loading…
Reference in New Issue