package incheon.com.security.service;

/**
 * 사용자 역할 자동 할당 서비스
 * - 시스템 진입 시 기본 역할 Lazy 할당
 * - 신청 프로세스 없이 직접 할당
 */
public interface UserRoleAssignService {

    /**
     * 사용자 역할 보유 여부 확인
     *
     * @param userId 사용자 ID
     * @param roleCd 역할 코드
     * @param sysCd  시스템 코드
     * @return true: 보유, false: 미보유
     */
    boolean hasRole(String userId, String roleCd, String sysCd);

    /**
     * 사용자 역할 자동 할당 (Lazy)
     * - 역할이 없는 경우에만 할당
     * - 시작일: 오늘, 종료일: 없음
     *
     * @param userId 사용자 ID
     * @param roleCd 역할 코드
     * @param sysCd  시스템 코드
     * @return true: 새로 할당됨, false: 이미 보유
     */
    boolean assignRoleIfAbsent(String userId, String roleCd, String sysCd);
}
