package com.spring.infra.security.service;

import org.springframework.security.core.userdetails.UserDetails;

/**
 * 사용자 인증 관련 서비스를 정의하는 인터페이스입니다.
 * 
 * <p>이 인터페이스는 사용자 인증 정보를 가져오는 메서드를 정의하며,
 * 사용자 세부 정보를 기반으로 인증을 수행하는 데 사용됩니다.</p>
 * 
 * <p>구현 클래스는 사용자 정보를 데이터베이스에서 조회하거나,
 * 다른 소스에서 가져오는 로직을 포함해야 합니다.</p>
 * 
 * @author mindol
 * @version 1.0
 */
public interface UserAuthenticationService {

    /**
     * 주어진 키에 해당하는 사용자 세부 정보를 가져옵니다.
     * 
     * <p>사용자 ID 또는 사용자 이름을 기반으로 사용자 정보를 조회합니다.</p>
     * 
     * @param key 사용자 ID 또는 사용자 이름
     * @return 사용자 세부 정보 객체
     */
    UserDetails getUserDetails(String key);
}
