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

#import <KakaoGame/KGObject.h>

/**
 * @brief 초대/보상 이벤트를 통한 보상 상태을 위한 Enum.
 */
typedef NS_ENUM(NSInteger, KGKakaoInvitationRewardState)
{
    KGKakaoInvitationRewardStateNotRewarded,        /**< 미지급. */
    KGKakaoInvitationRewardStateRewarded,           /**< 지급됨. */
    KGKakaoInvitationRewardStateExceedRewardCount,  /**< 지급 한도 초과. */
};

/**
 * @brief KGKakaoInvitationJoiner클래스는 초대/보상 이벤트에서 내 초대로 참여한 플레이어의 정보를 다룬다.
 */
@interface KGKakaoInvitationJoiner : KGObject

/**
 * @brief 참여한 플레이어 정보.(읽기만 가능)
 */
@property (atomic, readonly) KGPlayer                       *player;

/**
 * @brief 초대자의 보상 아이템 코드.(읽기만 가능)
 */
@property (atomic, readonly) NSString                       *hostRewardCode;

/**
 * @brief 초대자의 보상 지급 상태.(읽기만 가능)
 */
@property (atomic, readonly) KGKakaoInvitationRewardState   hostRewardState;

/**
 * @brief 참여자의 보상 아이템 코드.(읽기만 가능)
 */
@property (atomic, readonly) NSString                       *joinRewardCode;

/**
 * @brief 참여자의 보상 지급 상태.(읽기만 가능)
 */
@property (atomic, readonly) KGKakaoInvitationRewardState   joinRewardState;

/**
 * @brief 참여 시각. Epoch time(단위:ms).(읽기만 가능)
 */
@property (nonatomic, readonly) long long                   joinTime;

/**
 * @brief 내 초대로 참여한 플레이어의 정보 목록을 조회한다.
 *
 * @param eventId 이벤트 아이디.
 * @param completionHandler 완료 핸들러 [error:조회 결과][invitationJoiners:참여자 정보(KGKakaoInvitationJoiner) 목록].
 */
+ (void)loadInvitationJoinersWithEventId:(int)eventId completionHandler:(void(^)(NSError *error, NSArray *invitationJoiners))completionHandler;

@end
