package com.ga.core.mapper.license;

import com.ga.core.vo.license.AgentLicenseResp;
import com.ga.core.vo.license.AgentLicenseSearchParam;
import com.ga.core.vo.license.AgentLicenseVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * agent_license Mapper.
 */
@Mapper
public interface AgentLicenseMapper {

    AgentLicenseResp selectById(@Param("licenseId") Long licenseId);

    List<AgentLicenseResp> selectList(AgentLicenseSearchParam param);

    /**
     * 만료 임박 자격증 목록 조회 — 오늘부터 N일 이내 만료되는 ACTIVE 자격증.
     * 만료 알림 스케줄러에서 호출.
     */
    List<AgentLicenseResp> selectExpiringWithin(@Param("days") int days);

    int insert(AgentLicenseVO vo);

    int update(AgentLicenseVO vo);

    int updateStatus(@Param("licenseId") Long licenseId, @Param("status") String status);

    int delete(@Param("licenseId") Long licenseId);
}
