49 lines
1.6 KiB
Swift
49 lines
1.6 KiB
Swift
import Foundation
|
|
|
|
/// 分类排序模型 - 对应 Android 版 MovieSort.java
|
|
struct MovieSort: Codable {
|
|
/// 分类列表(包含首页推荐、影视分类等)。
|
|
var sortList: [SortData] = []
|
|
|
|
/// 单个分类数据
|
|
struct SortData: Codable, Identifiable, Hashable {
|
|
/// 分类唯一标识(接口字段通常为 type_id)。
|
|
var id: String
|
|
/// 分类显示名。
|
|
var name: String = ""
|
|
/// 标记位(不同源可定义不同语义,常用于首页/推荐标识)。
|
|
var flag: String = ""
|
|
/// 分类下可选筛选项(年份、地区、类型等)。
|
|
var filters: [SortFilter] = []
|
|
|
|
init(id: String = "", name: String = "", flag: String = "") {
|
|
self.id = id
|
|
self.name = name
|
|
self.flag = flag
|
|
}
|
|
|
|
/// 生成首页推荐占位分类。
|
|
/// 该分类不走常规分类接口,直接渲染首页推荐列表。
|
|
static func home() -> SortData {
|
|
SortData(id: "home", name: "推荐", flag: "1")
|
|
}
|
|
}
|
|
|
|
/// 筛选条件
|
|
struct SortFilter: Codable, Hashable {
|
|
/// 接口参数键,例如 `year`、`area`。
|
|
var key: String = ""
|
|
/// UI 展示名称。
|
|
var name: String = ""
|
|
/// 可选值集合。
|
|
var values: [SortFilterValue] = []
|
|
|
|
struct SortFilterValue: Codable, Hashable {
|
|
/// 展示名。
|
|
var n: String = ""
|
|
/// 真实参数值。
|
|
var v: String = ""
|
|
}
|
|
}
|
|
}
|