mirror of
https://github.com/zapstore/zapstore.git
synced 2026-10-05 20:48:24 +00:00
28 lines
937 B
Dart
28 lines
937 B
Dart
import 'package:flutter_data/flutter_data.dart';
|
|
import 'package:json_annotation/json_annotation.dart';
|
|
import 'package:purplebase/purplebase.dart';
|
|
import 'package:zapstore/models/app.dart';
|
|
import 'package:zapstore/models/nostr_adapter.dart';
|
|
|
|
part 'app_curation_set.g.dart';
|
|
|
|
@JsonSerializable()
|
|
@DataAdapter([NostrAdapter, AppCurationSetAdapter])
|
|
class AppCurationSet extends BaseAppCurationSet
|
|
with DataModelMixin<AppCurationSet> {
|
|
late final HasMany<App> apps;
|
|
}
|
|
|
|
mixin AppCurationSetAdapter on Adapter<AppCurationSet> {
|
|
@override
|
|
DeserializedData<AppCurationSet> deserialize(Object? data, {String? key}) {
|
|
final list = data is Iterable ? data : [data as Map];
|
|
for (final e in list) {
|
|
final map = e as Map<String, dynamic>;
|
|
final aValues = (map['tags'] as Iterable).where((t) => t[0] == 'a');
|
|
map['apps'] = aValues.map((e) => e[1].split(':')[2]);
|
|
}
|
|
return super.deserialize(data);
|
|
}
|
|
}
|