/** * 素材余量/可用性判断 * 后端片段重复率控制机制(任意两条成片画面重复率 ≤15%)上线后, * 素材列表会附加 usable / used_ratio 字段。字段未上线前一律按可用处理。 */ /** 仅依赖素材余量相关字段的最小结构,api 层与 pages 层 AssetItem 均可传入 */ export interface AssetUsageLike { usable?: boolean | null used_ratio?: number | null } /** * 素材是否仍可参与生成选片。 * usable === false 表示已彻底用尽(无新区间且复用次数全部达上限); * 字段缺失(undefined/null)时降级为可用,保证后端字段上线前零影响。 */ export const isAssetUsable = (asset: AssetUsageLike): boolean => asset.usable !== false