package com.ga.core.mapper.installment;

import com.ga.core.vo.installment.InstallmentRatioResp;
import com.ga.core.vo.installment.InstallmentRatioSearchParam;
import com.ga.core.vo.installment.InstallmentRatioVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface InstallmentRatioMapper {

    List<InstallmentRatioResp> selectList(InstallmentRatioSearchParam param);

    InstallmentRatioResp selectDetailById(@Param("ratioId") Long ratioId);

    InstallmentRatioVO selectById(@Param("ratioId") Long ratioId);

    /** 특정 날짜에 유효한 분급 비율 1건 (planYear + productCategory 조합) */
    InstallmentRatioVO selectActive(@Param("productCategory") String productCategory,
                                    @Param("planYear") Integer planYear,
                                    @Param("baseDate") String baseDate);

    /** 특정 날짜에 유효한 1~7년 차 전체 비율 조회 (분급 계획 일괄 생성 시 사용) */
    List<InstallmentRatioVO> selectAllActiveRatios(@Param("productCategory") String productCategory,
                                                   @Param("baseDate") String baseDate);

    int insert(InstallmentRatioVO vo);

    int update(InstallmentRatioVO vo);
}
