37 lines
973 B
Dart
37 lines
973 B
Dart
// lib/metadata/metadata_cache.dart
|
||
import 'metadata_model.dart';
|
||
|
||
/// 本地缓存接口(先用内存缓存,后续升级为 SQLite)
|
||
class MetadataCache {
|
||
// 内存缓存:Map<fileId, FinalMetadata>
|
||
final Map<String, FinalMetadata> _cache = {};
|
||
|
||
/// 获取缓存
|
||
Future<FinalMetadata?> get(String fileId) async {
|
||
return _cache[fileId];
|
||
}
|
||
|
||
/// 存入缓存
|
||
Future<void> put(String fileId, FinalMetadata metadata) async {
|
||
_cache[fileId] = metadata;
|
||
}
|
||
|
||
/// 更新缓存(同 put)
|
||
Future<void> update(String fileId, FinalMetadata metadata) async {
|
||
_cache[fileId] = metadata;
|
||
}
|
||
|
||
/// 根据 artist 获取历史记录(用于证据收集)
|
||
/// 实际项目中需要从数据库查询,目前返回空列表
|
||
Future<List<Map<String, dynamic>>> getHistory(String artist,
|
||
{int limit = 10}) async {
|
||
// TODO: 从 SQLite 查询
|
||
return [];
|
||
}
|
||
|
||
/// 清空缓存
|
||
Future<void> clear() async {
|
||
_cache.clear();
|
||
}
|
||
}
|