package go.kr.project.api.service;

import go.kr.project.api.model.CarBassMatterInqireVO;
import go.kr.project.api.model.response.NewBasicResponse;

/**
 * 자동차 기본사항 조회 로그 전용 서비스 인터페이스
 *
 * <p>로그 적재만 별도 트랜잭션(REQUIRES_NEW)으로 처리하여,
 * 외부 호출 실패나 상위 트랜잭션 롤백 상황에서도 로그는 영속화되도록 보장한다.</p>
 */
public interface VmisCarBassMatterInqireLogService {

    /**
     * 최초 API 요청 정보를 등록한다. (REQUIRES_NEW)
     * @param request 요청 정보
     * @return 생성된 ID
     */
    String createInitialRequestNewTx(CarBassMatterInqireVO request);

    /**
     * 응답/에러 결과를 업데이트한다. (REQUIRES_NEW)
     * @param response 업데이트 내용
     */
    void updateResponseNewTx(CarBassMatterInqireVO response);

    /**
     * txId로 CAR_FFNLG_TRGT_ID를 업데이트한다. (REQUIRES_NEW, 지연/미필 공통)
     * @param response API 응답 객체
     * @param carFfnlgTrgtId 과태료 대상 ID (지연 또는 미필)
     */
    void updateCarFfnlgTrgtIdByTxIdNewTx(NewBasicResponse response, String carFfnlgTrgtId);
}
