//
//  CODownloadManager+ByURL.h
//  classonline
//
//  Created by hyz on 2019/3/20.
//  Copyright © 2019 offcn. All rights reserved.
//

#import "CODownloadManager.h"
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

/// 普通下载默认的课件ID，用于归类下载
static NSString * const rootCourseIdByOrdinaryDownload = @"o_d_root_course_id";
/// 普通下载默认的课件ID前缀，用于归类下载，该类型文件不会同步下载记录
static NSString * const lessonIdByOrdinaryDownloadPrefix = @"ordinary_download";

@class CODownloadRejectModel;

/**
 * 该类是根据具体业务类型做的扩展
 *
 * 该类可以处理讲义（PDF）、视频的课件类型的下载
 *
 * 通过URL执行的下载，该类下载只需要提供一些简单的信息，如：URL、文件类型，即可执行下载的情况。
 */
@interface CODownloadManager (ByURL)

/// 执行URL下载操作，并带有下载被拒绝原因数据
/// @param downloadURL 下载地址
/// @param fileType 下载类型
/// @param block 下载被拒绝原因回调，rejectArray被拒原因数组
/// @param isPriority 是否是要执行优先下载
- (void)co_startURLDownload:(NSString *)downloadURL
               withFileType:(COLessonType)fileType
                     userID:(NSString *)userID
        downloadRejectBlock:(nullable void (^)(NSMutableArray<CODownloadRejectModel *> * _Nullable))block
       withPriorityDownload:(BOOL)isPriority;

/// 执行URL下载操作
/// @param downloadURL 课件数据的集合
- (void)co_pauseURLDownload:(NSString *)downloadURL;

/// 执行删除下载对象操作
/// @param downloadURL 下载地址
/// @param presentVC 删除时弹框所依附的ViewController
- (void)co_deleteURLDownload:(NSString *)downloadURL
                      userID:(NSString *)userID
          withViewController:(UIViewController *)presentVC;

@end

NS_ASSUME_NONNULL_END
