// // JXPlaybackProgressStorage.h // AICity // // Feature: 003-ios-api-https // 播放进度本地存储管理器 // #import #import #import "JXPlaybackProgressModel.h" NS_ASSUME_NONNULL_BEGIN /** * 播放进度本地存储管理器 * 功能: * - 封装CoreData操作 * - 提供简洁的API接口 * - 单例模式 */ @interface JXPlaybackProgressStorage : NSObject /** * 获取单例实例 */ + (instancetype)sharedStorage; /** * 保存播放进度到本地 */ - (void)saveProgressWithEpisodeId:(NSString *)episodeId dramaId:(NSString *)dramaId position:(int64_t)position duration:(int64_t)duration isCompleted:(BOOL)isCompleted synced:(BOOL)synced completion:(nullable void(^)(BOOL success, NSError * _Nullable error))completion; /** * 获取播放进度 */ - (nullable JXPlaybackProgressModel *)getProgressWithEpisodeId:(NSString *)episodeId; /** * 获取指定剧的所有播放进度 */ - (NSArray *)getProgressByDramaId:(NSString *)dramaId; /** * 获取所有未同步的播放进度 */ - (NSArray *)getUnsyncedProgresses; /** * 标记进度为已同步 */ - (void)markAsSyncedWithEpisodeId:(NSString *)episodeId; /** * 删除播放进度 */ - (void)deleteProgressWithEpisodeId:(NSString *)episodeId; /** * 删除指定剧的所有播放进度 */ - (void)deleteProgressByDramaId:(NSString *)dramaId; /** * 清除所有播放进度 */ - (void)clearAll; /** * 清理7天前的旧记录 */ - (void)cleanupOldRecords; @end NS_ASSUME_NONNULL_END