//
//  KGFriendLeaderboard.h
//  KakaoGame SDK
//
//  Created by Ronaldo Kim on 2016. 9. 19..
//  Copyright (c) 2016. Kakao Corp. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 * @brief KGFriendLeaderboard클래스는 IDP 친구 리더보드 기능을 제공한다.
 */
@interface KGFriendLeaderboard : NSObject

/**
 * @brief 현재 시즌의 IDP 친구들(나 포함)의 랭킹 정보를 조회한다.
 *
 * @param leaderboardId 리더보드 아이디.
 * @param completionHandler 완료 핸들러 [error:조회 결과][friendRankingInfos:친구 랭킹 정보 목록].
 *
 * @see KGFriendRankingInfo
 */
+ (void)loadFriendRankingsWithLeaderboardId:(NSString *)leaderboardId
                          completionHandler:(void(^)(NSError *error, NSArray *friendRankingInfos))completionHandler;

/**
 * @brief 이전 시즌의 IDP 친구들(나 포함)의 랭킹 정보를 조회한다.
 *
 * @param leaderboardId 리더보드 아이디.
 * @param completionHandler 완료 핸들러 [error:조회 결과][friendRankingInfos:친구 랭킹 정보 목록].
 *
 * @see KGFriendRankingInfo
 */
+ (void)loadLastSeasonFriendRankingsWithLeaderboardId:(NSString *)leaderboardId
                                    completionHandler:(void(^)(NSError *error, NSArray *friendRankingInfos))completionHandler;

/**
 * @brief 현재 시즌의 플레이어 아이디 목록의 랭킹 정보를 조회한다.
 *
 * @param playerIds 조회할 플레이어 아이디 목록.
 * @param leaderboardId 리더보드 아이디.
 * @param completionHandler 완료 핸들러 [error:조회 결과][friendRankingInfos:친구 랭킹 정보 목록]. (해당 API를 사용 시, 결과내 KGPlayer 객체 내부의 idpProfile 객체는 null.)
 *
 * @see KGFriendRankingInfo
 */
+ (void)loadPlayersRankingsWithPlayerIds:(NSArray *)playerIds
                           leaderboardId:(NSString *)leaderboardId
                       completionHandler:(void(^)(NSError *error, NSArray *friendRankingInfos))completionHandler;

/**
 * @brief 이전 시즌의 플레이어 아이디 목록의 랭킹 정보를 조회한다.
 *
 * @param playerIds 조회할 플레이어 아이디 목록.
 * @param leaderboardId 리더보드 아이디.
 * @param completionHandler 완료 핸들러 [error:조회 결과][friendRankingInfos:친구 랭킹 정보 목록]. (해당 API를 사용 시, 결과내 KGPlayer 객체 내부의 idpProfile 객체는 null.)
 *
 * @see KGFriendRankingInfo
 */
+ (void)loadLastSeasonPlayersRankingsWithPlayerIds:(NSArray *)playerIds
                                     leaderboardId:(NSString *)leaderboardId
                                 completionHandler:(void(^)(NSError *error, NSArray *friendRankingInfos))completionHandler;
@end
