package com.devjob.application.client;

import com.devjob.application.dto.JobInfo;
import com.devjob.common.dto.ApiResponse;
import com.devjob.common.exception.BusinessException;
import com.devjob.common.exception.ErrorCode;
import lombok.extern.slf4j.Slf4j;

/**
 * devjob-job 폴백 — 평범한 public 클래스다(@Component·implements·@HttpServiceFallback 붙이지 않는다).
 * JobHttpClient.getJob과 '같은 이름·같은 파라미터 타입'이면 폴백으로 매칭된다.
 * 이 폴백을 회로에 연결하는 것은 HttpClientConfig의 @HttpServiceFallback이다.
 */
@Slf4j
public class JobHttpClientFallback {

    public ApiResponse<JobInfo> getJob(Long id) {
        log.warn("[Fallback] devjob-job 호출 실패 - jobId={}", id);
        throw new BusinessException(ErrorCode.JOB_SERVICE_UNAVAILABLE);
    }
}
