//
//  KGSystem.h
//  KakaoGame SDK
//
//  Created by Bruce Lee on 2017. 2. 14..
//  Copyright (c) 2017. Kakao Corp. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 * @brief KGSystem클래스는 시스템에 대한 정보를 제공한다.
 */
@interface KGSystem : NSObject

/**
 * @brief 디바이스 아이디를 반환한다.
 *
 * @return 디바이스 아이디.
 */
+ (NSString*)deviceId;

/**
 * @brief 연결된 네트워크 타입을 반환한다.
 *
 * @return 연결된 네트워크 타입.<br>
 * WIFI 연결되어 있으면 "wifi"를 반환한다.<br>
 * 통신사와 연결되어 있으면 "cellular"를 반환한다.<br>
 * 연결되어 있지 않거나, 해당 정보를 알수 없으면 "unknown"을 반환한다.
 */
+ (NSString*)networkType;

/**
 * @brief 네트워크 연결 상태를 반환한다.
 *
 * @return 네트워크 연결되어 있으면 YES를 반환한다. 아니면 NO를 반환한다.
 */
+ (BOOL)isNetworkConnected;

/**
 * @brief 국가 코드를 반환한다.
 *
 * @return 국가 코드.
 */
+ (NSString*)countryCode;

/**
 * @brief 언어 코드를 반환한다.
 *
 * @return 언어 코드.
 */
+ (NSString*)languageCode;

/**
 * @brief 디바이스 모델명을 반환한다.
 *
 * @return 디바이스 모델명.
 */
+ (NSString*)deviceModel;

/**
 * @brief OS 이름을 반환한다.
 *
 * @return "ios".
 */
+ (NSString*)osName;

/**
 * @brief 언어코드를 설정한다.
 *
 * @param languageCode 언어코드.
 * @param completionHandler 완료 핸들러 [error:요청 결과].
 */
+ (void)updateLanguageCodeWithCode:(NSString *)languageCode
                 completionHandler:(void(^)(NSError *error))completionHandler;

/**
 * @brief geo ip에 따른 국가코드를 반환한다.
 *
 * @return 국가 코드
 */
+ (NSString *)geoCountryCode;

@end
