package incheon.com.security.mapper;

import incheon.com.config.annotation.MainDB;
import org.apache.ibatis.annotations.Param;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;

/**
 * 사용자 역할 자동 할당 매퍼
 * - 시스템 진입 시 기본 역할 Lazy 할당
 * - 신청 프로세스 없이 직접 할당
 */
@Mapper
@MainDB
public interface UserRoleAssignMapper {

    /**
     * 사용자-역할 매핑 존재 여부 확인
     *
     * @param userId 사용자 ID
     * @param roleCd 역할 코드
     * @param sysCd  시스템 코드
     * @return 존재 건수 (0: 없음, 1: 있음)
     */
    int existsUserRole(@Param("userId") String userId,
                       @Param("roleCd") String roleCd,
                       @Param("sysCd") String sysCd);

    /**
     * 사용자 역할 자동 할당 (시작일만)
     *
     * @param userId      사용자 ID
     * @param roleCd      역할 코드
     * @param sysCd       시스템 코드
     * @param roleBgngYmd 역할 시작일 (YYYY-MM-DD)
     * @return 삽입 건수
     */
    int insertUserRole(@Param("userId") String userId,
                       @Param("roleCd") String roleCd,
                       @Param("sysCd") String sysCd,
                       @Param("roleBgngYmd") String roleBgngYmd);
}
