JXHomeHeaderData.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //
  2. // JXHomeHeaderData.h
  3. // AICity
  4. //
  5. // 首页头部数据模型
  6. // 包含:Banner、热门影片、热门短剧
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. #pragma mark - Banner 数据模型
  11. @interface JXBannerItem : NSObject
  12. @property (nonatomic, assign) NSInteger itemId;
  13. @property (nonatomic, copy) NSString *name;
  14. @property (nonatomic, copy, nullable) NSString *hCoverUrl; // 横向封面
  15. @property (nonatomic, copy, nullable) NSString *vCoverUrl; // 竖向封面
  16. @property (nonatomic, copy, nullable) NSString *describe;
  17. @property (nonatomic, assign) float score;
  18. @property (nonatomic, assign) BOOL collected;
  19. @property (nonatomic, assign) NSInteger movieType; // 1:电视剧 2:电影
  20. @property (nonatomic, copy, nullable) NSString *categories;
  21. @property (nonatomic, assign) NSInteger sectionCount; // 总集数
  22. + (instancetype)modelWithDictionary:(NSDictionary *)dict;
  23. @end
  24. #pragma mark - 热门短剧数据模型
  25. @interface JXHotDrama : NSObject
  26. @property (nonatomic, assign) NSInteger dbId; // 数据库ID
  27. @property (nonatomic, assign) long long jxDramaId; // 剧星平台ID
  28. @property (nonatomic, copy) NSString *contentType;
  29. @property (nonatomic, copy) NSString *title;
  30. @property (nonatomic, copy, nullable) NSString *horizontalCoverUrl;
  31. @property (nonatomic, copy, nullable) NSString *verticalCoverUrl;
  32. @property (nonatomic, copy, nullable) NSString *coverUrl;
  33. @property (nonatomic, assign) NSInteger totalEpisodes;
  34. @property (nonatomic, assign) NSInteger position;
  35. + (instancetype)modelWithDictionary:(NSDictionary *)dict;
  36. // 转换为通用的 Item 格式(用于显示)
  37. - (JXBannerItem *)toBannerItem;
  38. @end
  39. #pragma mark - 首页头部数据
  40. @interface JXHomeHeaderData : NSObject
  41. @property (nonatomic, strong, nullable) NSArray<JXBannerItem *> *banners;
  42. @property (nonatomic, strong, nullable) NSArray<JXBannerItem *> *hotMovies;
  43. @property (nonatomic, strong, nullable) NSArray<JXHotDrama *> *hotDramas;
  44. // 合并热门影片和短剧
  45. - (NSArray<JXBannerItem *> *)getAllHotRecommends;
  46. + (instancetype)modelWithDictionary:(NSDictionary *)dict;
  47. @end
  48. NS_ASSUME_NONNULL_END