package com.ga.core.mapper.succession;

import com.ga.core.vo.succession.ContractSuccessionResp;
import com.ga.core.vo.succession.ContractSuccessionSearchParam;
import com.ga.core.vo.succession.ContractSuccessionVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ContractSuccessionMapper {
    ContractSuccessionResp selectById(@Param("successionId") Long successionId);
    List<ContractSuccessionResp> selectList(ContractSuccessionSearchParam param);

    /**
     * 배치 유지수수료 계산용 — 정산월 기준 유효한 승계의 (계약, 후임설계사) 매핑.
     * 계약별로 succession_date 의 YYYYMM 이 정산월 이하인 가장 최근 ACTIVE 승계 1건만.
     */
    List<ContractSuccessionVO> selectEffectiveSuccessions(@Param("settleMonth") String settleMonth);

    int insert(ContractSuccessionVO vo);
    int cancel(@Param("successionId") Long successionId, @Param("updatedBy") Long updatedBy);
    int delete(@Param("successionId") Long successionId);
}
