package go.kr.project.api.service; import go.kr.project.api.model.VehicleApiResponseVO; import go.kr.project.api.model.request.BasicRequest; import go.kr.project.api.model.request.LedgerRequest; import go.kr.project.api.model.response.BasicResponse; import go.kr.project.api.model.response.LedgerResponse; import java.util.List; /** * 차량 정보 조회 서비스 인터페이스 * *
이 인터페이스는 차량 정보를 조회하는 두 가지 구현체를 추상화합니다:
** # application.yml * vmis: * integration: * mode: internal # 또는 external ** *
* {@code
* @Autowired
* private VehicleInfoService vehicleInfoService;
*
* // 단일 차량 조회
* VehicleApiResponseVO response = vehicleInfoService.getVehicleInfo("12가3456");
*
* // 여러 차량 일괄 조회
* List responses = vehicleInfoService.getVehiclesInfo(
* Arrays.asList("12가3456", "34나5678")
* );
*
* // 단독 조회 (기본/등록원부)
* BasicResponse basic = vehicleInfoService.getBasicInfo("12가3456");
* LedgerResponse ledger = vehicleInfoService.getLedgerInfo("12가3456");
* }
*
*/
public interface VehicleInfoService {
/**
* 단일 차량번호에 대한 정보 조회
*
* 차량 기본정보와 등록원부 정보를 함께 조회합니다.
* * @param vehicleNumber 차량번호 * @return 차량 정보 응답 (기본정보 + 등록원부 정보) */ VehicleApiResponseVO getVehicleInfo(String vehicleNumber); /** * 단일 차량에 대한 정보 조회 (상세 파라미터 포함) * *차량 기본정보와 등록원부 정보를 함께 조회합니다.
*차량번호 외에 부과기준일, 조회구분, 차대번호 등 추가 파라미터를 포함하여 조회할 수 있습니다.
* * @param basicRequest 기본정보 조회 요청 (차량번호, 부과기준일, 조회구분 등 포함) * @return 차량 정보 응답 (기본정보 + 등록원부 정보) */ VehicleApiResponseVO getVehicleInfo(BasicRequest basicRequest); /** * 여러 차량번호에 대한 정보를 일괄 조회 * *각 차량에 대해 기본정보와 등록원부 정보를 함께 조회합니다.
* * @param vehicleNumbers 차량번호 리스트 * @return 차량 정보 응답 리스트 */ List