Files
keyboard/keyBoard/Class/Home/VM/KBHomeVM.h
2025-12-04 19:12:34 +08:00

66 lines
2.3 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// KBHomeVM.h
// keyBoard
//
// Created by Mac on 2025/12/3.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class KBCharacter;
@class KBTag;
/// 首页排行榜回调
typedef void(^KBHomeRankCompletion)(NSArray<KBCharacter *> * _Nullable list,
NSError * _Nullable error);
/// 首页标签回调
typedef void(^KBHomeTagCompletion)(NSArray<KBTag *> * _Nullable list,
NSError * _Nullable error);
/// 添加用户人设回调
typedef void(^KBHomeAddUserCharacterCompletion)(BOOL success,
NSError * _Nullable error);
@interface KBHomeVM : NSObject
/// 最近一次成功请求到的排行榜数据
@property (nonatomic, copy, readonly, nullable) NSArray<KBCharacter *> *rankList;
/// 最近一次成功请求到的标签数据
@property (nonatomic, copy, readonly, nullable) NSArray<KBTag *> *tagList;
/// 请求排行榜列表GET /character/list
/// - Parameters:
/// - params: 额外查询参数(可为空),例如分页、筛选 tag 等;
/// - needShow: 是否在请求期间显示加载 HUD
/// - completion: 回调list 为解析后的模型数组error 非空表示失败。
- (void)fetchRankListWithParams:(nullable NSDictionary *)params
needShow:(BOOL)needShow
completion:(KBHomeRankCompletion)completion;
/// 根据 tagId 获取角色列表GET /character/listByTag
- (void)fetchRankListByTagId:(nullable NSString *)tagId
needShow:(BOOL)needShow
completion:(KBHomeRankCompletion)completion;
/// 请求排行榜标签列表GET /tag/list
/// - Parameters:
/// - params: 额外查询参数(可为空);
/// - needShow: 是否在请求期间显示加载 HUD
/// - completion: 回调list 为解析后的标签数组error 非空表示失败。
- (void)fetchTagListWithParams:(nullable NSDictionary *)params
needShow:(BOOL)needShow
completion:(KBHomeTagCompletion)completion;
/// 添加用户人设(例如在首页排行榜中点 “+”)
/// GET /character/addUserCharacter?id={characterId}
- (void)addUserCharacterWithId:(NSNumber *)characterId
completion:(KBHomeAddUserCharacterCompletion)completion;
@end
NS_ASSUME_NONNULL_END