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

#import <Foundation/Foundation.h>

/**
 * @brief KGAppOption클래스는 앱 옵션 정보를 다룬다.
 */
@interface KGAppOption : NSObject

/**
 * @brief 접속할 게임 서버의 주소를 반환한다.
 */
+ (NSString *)gameServerAddress;

/**
 * @brief 접속할 CDN의 주소를 반환한다.
 */
+ (NSString *)CDNAddress;

/**
 * @brief 키에 해당하는 값을 반환한다.<br>
 * 어드민에서 키와 밸류에 대한 설정이 가능하다. 동적으로 변경이 필요한 값에 대해서는 어드민에서 설정하고, 아래 API를 통해, 가져올 수 있다.
 */
+ (NSString *)valueForKey:(NSString *)key;

/**
 * @brief 기기 언어에 맞춰서 어드민에서 설정한 다국어 옵션키에 대한 데이터를 반환한다.<br>
 * 앱옵션 로컬라이징에서 설정한 데이터를 키를 통해 가져온다.
 * 동적으로 변경이 필요한 데이터에 대해서는 어드민에서 설정하고, 이를 통해 가져올 수 있다.
 */
+ (void)loadCustomOptionValueWithKey:(NSString *)key
				   completionHandler:(void(^)(NSError *error, NSString *value))completionHandler;

/**
 * @brief 권장 업데이트 팝업을 띄운다.
 *
 * @param titleMessage  팝업 타이틀 문구.
 * @param updateButton  팝업 업데이트 버튼 문구.
 * @param laterButton   팝업 나중에 버튼 문구.
 * @param completionHandler 완료 핸들러 [error:요청 결과, isUpdateRequired:권장업데이트 필요여부].
 */
+ (void)showUpdateRecommendedPopupWithTitleMessage:(NSString *)titleMessage
                                      updateButton:(NSString *)updateButton
                                       laterButton:(NSString *)laterButton
                                 completionHandler:(void(^)(NSError *error, BOOL isUpdateRequired))completionHandler;

@end
