| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- //
- // JXPlaybackProgressStorage.h
- // AICity
- //
- // Feature: 003-ios-api-https
- // 播放进度本地存储管理器
- //
- #import <Foundation/Foundation.h>
- #import <CoreData/CoreData.h>
- #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<JXPlaybackProgressModel *> *)getProgressByDramaId:(NSString *)dramaId;
- /**
- * 获取所有未同步的播放进度
- */
- - (NSArray<JXPlaybackProgressModel *> *)getUnsyncedProgresses;
- /**
- * 标记进度为已同步
- */
- - (void)markAsSyncedWithEpisodeId:(NSString *)episodeId;
- /**
- * 删除播放进度
- */
- - (void)deleteProgressWithEpisodeId:(NSString *)episodeId;
- /**
- * 删除指定剧的所有播放进度
- */
- - (void)deleteProgressByDramaId:(NSString *)dramaId;
- /**
- * 清除所有播放进度
- */
- - (void)clearAll;
- /**
- * 清理7天前的旧记录
- */
- - (void)cleanupOldRecords;
- @end
- NS_ASSUME_NONNULL_END
|