//
//  JPDiscoverBaseTableViewCell.h
//  JPDiscover
//
//  Created by Jasper on 16/3/27.
//  Copyright 漏 2016骞?Jasper. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "JPDiscoverModel.h"
#import "JPDiscoverCellBaseModule.h"
#import "JPDiscoverCellImageModule.h"

@class JPDiscoverBaseTableViewCell;

#pragma mark 浜嬩欢鏂规硶

@protocol JPDiscoverTableViewCellDelegate <NSObject>

@optional
- (void)groupTableViewCell:(JPDiscoverBaseTableViewCell *)tableViewCell loadImageView:(UIImageView *)imageView imageUrl:(NSString *)imageUrl placeholderImage:(NSString *)placeholderImageName;
- (void)groupTableViewCellTapImageWall:(JPDiscoverBaseTableViewCell *)tableViewCell imageWall:(JPDiscoverCellImageModule *)imageWall imageView:(UIImageView *)imageView index:(NSUInteger)index;
- (void)groupTableViewCellTapUserHead:(JPDiscoverBaseTableViewCell *)tableViewCell;
- (void)groupTableViewCellTapPraiseButton:(JPDiscoverBaseTableViewCell *)tableViewCell;
- (void)groupTableViewCellTapCommentButton:(JPDiscoverBaseTableViewCell *)tableViewCell;
- (void)groupTableViewCellTapShareContent:(JPDiscoverBaseTableViewCell *)tableViewCell;
- (void)groupTableViewCellTapVideoPlay:(JPDiscoverBaseTableViewCell *)tableViewCell;
@end

#pragma mark 鏁版嵁婧?
@protocol JPDiscoverTableViewCellDataSource <NSObject>

@required
- (JPDiscoverTitleModel *)titleDataForGroupTableViewCell:(JPDiscoverBaseTableViewCell *)tableViewCell indexPath:(NSIndexPath *)indexPath;

- (JPDiscoverContentModel *)contentDataForGroupTableViewCell:(JPDiscoverBaseTableViewCell *)tableViewCell indexPath:(NSIndexPath *)indexPath;

- (JPDiscoverImageModel *)imageDataForGroupTableViewCell:(JPDiscoverBaseTableViewCell *)tableViewCell indexPath:(NSIndexPath *)indexPath;

- (JPDiscoverShareModel *)shareDataForGroupTableViewCell:(JPDiscoverBaseTableViewCell *)tableViewCell indexPath:(NSIndexPath *)indexPath;

- (JPDiscoverVideoModel *)videoDataForGroupTableViewCell:(JPDiscoverBaseTableViewCell *)tableViewCell indexPath:(NSIndexPath *)indexPath;

- (JPDiscoverCommentsModel *)commentsDataForGroupTableViewCell:(JPDiscoverBaseTableViewCell *)tableViewCell indexPath:(NSIndexPath *)indexPath;

@end

@interface JPDiscoverBaseTableViewCell : UITableViewCell

/**
 *  @brief  妯″潡鏁扮粍
 */
@property (nonatomic, strong) NSArray *modules;
@property (nonatomic, strong) NSIndexPath *indexPath;

@property (nonatomic, weak) id<JPDiscoverTableViewCellDataSource>dataSource;
@property (nonatomic, weak) id<JPDiscoverTableViewCellDelegate>delegate;

/**
 *  @brief  鍒涘缓cell
 *
 *  @param style           鏍峰紡
 *  @param reuseIdentifier 鏍囪瘑
 *  @param module          妯″潡浠紙浼犲悕锛? *
 *  @return cell
 */
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier width:(CGFloat)width;
/**
 *  @brief  鍔犺浇鏁版嵁
 */
- (void)loadDataSourceWithIndexPath:(NSIndexPath *)indexPath;
/**
 *  @brief  璁$畻瀵瑰簲鍐呭鏄剧ず鐨勯珮搴? *
 *  @param model 瑕佺敤鏉ヨ绠楅珮搴︾殑鏁版嵁婧? *  @param width 瀹藉害
 *
 *  @return 楂樺害
 */
+ (CGFloat)countHeightWithGroupCellModel:(JPDiscoverModel *)model width:(CGFloat)width;

@end
// 鐗堟潈灞炰簬鍘熶綔鑰?// http://code4app.com (cn) http://code4app.net (en)
// 鍙戝竷浠g爜浜庢渶涓撲笟鐨勬簮鐮佸垎浜綉绔? Code4App.com