@Repository
@RequiredArgsConstructor
public class UserRepositoryImpl implements UserRepository {

    private final UserJpaRepository userJpaRepository;

    @Override
    public Optional<User> findByEmail(String email) {
        return userJpaRepository.findByEmail(email);
    }

    @Override
    public User save(User save) {
        return userJpaRepository.save(save);
    }

    @Override
    public Optional<User> findById(String userId) {
        return userJpaRepository.findById(userId);
    }

    @Override
    public void deleteById(String userId) {
        userJpaRepository.deleteById(userId);
    }

    @Override
    public List<User> findUsersByEmails(List<String> assigneeEmails) {
        return userJpaRepository.findAllByEmailIn(assigneeEmails);
    }

}

public interface UserRepository {

    //함수정의
    Optional<User> findByEmail(String email);

    User save(User save);

    Optional<User> findById(String userId);

    void deleteById(String userId);

    List<User> findUsersByEmails(List<String> assigneeEmails);

}