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

#import <Foundation/Foundation.h>

/**
 * @brief KGSupport클래스는 고객 응대에 필요한 다양한 뷰를 제공한다.
 */
@interface KGSupport : NSObject

/**
 * @brief 고객센터 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showCSViewWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 공지사항 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showNoticeViewWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 공지사항 뷰를 하루에 한번만 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showNoticeViewForOneDayWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 특정 공지사항 뷰를 띄운다.
 *
 * @param noticeKey 공지 키.
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showNoticeViewWithNoticeKey:(NSString *)noticeKey completionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 특정 공지사항 뷰를 하루에 한번만 띄운다.
 *
 * @param noticeKey 공지 키.
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showNoticeViewForOneDayWithNoticeKey:(NSString *)noticeKey completionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 경품 이벤트 당첨 안내 뷰를 띄운다.
 *
 * @param eventKey 이벤트 키.
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showEventWinningResultViewWithEventKey:(NSString *)eventKey completionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 이벤트 월 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showEventWallWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 이벤트 진행상황 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showEventProgressWallWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 공지사항 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showNoticeOnlyViewWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 커뮤니티(게임의 공식 커뮤니티 사이트) 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showCommunityViewWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 커뮤니티(게임의 공식 커뮤니티 사이트) 뷰를 띄운다.
 *
 * @param pageCode 이동할 페이지 코드.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showCommunityViewWithPageCode:(NSString *)pageCode completionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 커뮤니티(게임의 공식 커뮤니티 사이트) 뷰를 띄운다.
 *
 * @param articleId 이동한 아티클 아이디.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showCommunityViewWithArticleId:(long long)articleId completionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 가챠확률을 표시하는 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showGachaOddsViewWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler; 

/**
 * @brief 현재 실행중인 앱내에서 웹뷰를 띄운다.
 *
 * @param url 웹 URL.
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showInAppWebViewWithUrl:(NSString *)url completionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 다음 카페 뷰를 띄운다.
 *
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showDaumCafeViewWithCompletionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

/**
 * @brief 특정 카페 url이 포함된 다음 카페 뷰를 띄운다.
 *
 * @param url 웹 URL.
 * @param completionHandler 완료 핸들러. 뷰가 닫힐때 호출된다. [error:뷰 오픈 결과][deepLinkUrl:딥링크 URL].
 */
+ (void)showDaumCafeViewWithUrl:(NSString *)url completionHandler:(void(^)(NSError *error, NSString *deepLinkUrl))completionHandler;

@end
