//
//  KGKakaoTalkGroupChat.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, KGKakaoTalkGroupChatType)
{
    KGKakaoTalkGroupChatTypeRegular,    /**< 일반 그룹채팅. */
    KGKakaoTalkGroupChatTypeOpen,       /**< 오픈 그룹채팅. */
};

/**
 * @brief KGKakaoTalkGroupChat클래스는 그룹채팅 정보를 다룬다.
 */
@interface KGKakaoTalkGroupChat : KGObject

/**
 * @brief 그룹채팅 아이디.(읽기만 가능)
 */
@property (atomic, readonly) long long                  chatId;

/**
 * @brief 그룹채팅 제목.(읽기만 가능)
 */
@property (atomic, readonly) NSString                   *title;

/**
 * @brief 그룹채팅 프로필 이미지 URL.(읽기만 가능)
 */
@property (atomic, readonly) NSString                   *thumbnailImageUrl;

/**
 * @brief 그룹채팅 멤버 수.(읽기만 가능)
 */
@property (atomic, readonly) int                        memberCount;

/**
 * @brief 그룹채팅 멤버의 프로필 이미지 URL 목록.(읽기만 가능)
 */
@property (atomic, readonly) NSArray                    *memberThumbnailImageUrls;

/**
 * @brief 그룹채팅 타입.(읽기만 가능)
 *
 * @see KGKakaoTalkGroupChatType
 */
@property (atomic, readonly) KGKakaoTalkGroupChatType   chatType;

/**
 * @brief 현재의 카카오 유저가 속한 카카오톡의 그룹 채팅방 목록을 조회한다.
 *
 * @param offset 조회할 오프셋. 0부터 시작.
 * @param limit 한번에 가져올 최대 갯수.
 * @param completionHandler 완료 핸들러 [error:조회 결과][totalCount:그룹 채팅방 수][groupChats:그룹 채팅방 정보(KGKakaoTalkGroupChat) 목록].
 */
+ (void)loadGroupChatsWithOffset:(int)offset
                           limit:(int)limit
               completionHandler:(void(^)(NSError *error, int totalCount, NSArray *groupChats))completionHandler;

@end
