package com.ga.core.mapper.product;

import com.ga.core.vo.product.ContractResp;
import com.ga.core.vo.product.ContractSearchParam;
import com.ga.core.vo.product.ContractVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ContractMapper {
    List<ContractResp> selectList(ContractSearchParam param);
    ContractResp selectDetailById(@Param("contractId") Long contractId);
    ContractVO selectById(@Param("contractId") Long contractId);
    int existsByPolicyNo(@Param("policyNo") String policyNo);

    /**
     * 증권번호로 계약 조회 (업로드 시 agent/contract 해소용).
     * 반환: ContractVO (contractId + agentId 포함). 미존재 시 null.
     */
    ContractVO selectByPolicyNo(@Param("policyNo") String policyNo);
    int insert(ContractVO vo);
    int update(ContractVO vo);
    int updateStatus(@Param("contractId") Long contractId, @Param("status") String status);
    int countByAgent(@Param("agentId") Long agentId, @Param("status") String status);
}
