package com.ga.batch.settlement.receive;

import com.ga.core.mapper.receive.ReceiveMapper;
import com.ga.core.vo.receive.CompanyProfileVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 수동 업로드된 데이터를 사용하는 기본 Receiver.
 * (이미 화면에서 업로드된 raw_commission_data 가 있으면 그대로 사용)
 *
 * 운영에서 FTP/API Receiver 추가 시 이 인터페이스 구현체로 추가.
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class ManualReceiver implements DataReceiver {

    private final ReceiveMapper mapper;

    @Override
    public boolean supports(String companyCode) {
        CompanyProfileVO p = mapper.selectProfile(companyCode);
        return p == null || "MANUAL".equalsIgnoreCase(p.getReceiveMethod());
    }

    @Override
    public int receive(String companyCode, String settleMonth) {
        // 수동 업로드는 별도 작업 없음. 기존 raw 데이터 건수만 반환.
        return mapper.selectRawList(companyCode, settleMonth, "PENDING").size();
    }
}
