serialize method
Returns a serialized version of a model of T
,
as a Map<String, dynamic> ready to be JSON-encoded.
Implementation
@override
Map<String, dynamic> serialize(T model) {
final map = localAdapter.serialize(model).filterNulls;
final relationships = <String, dynamic>{};
for (final field in localAdapter.relationshipsFor(model).keys) {
final key = keyForField(field);
if (map[field] != null) {
if (map[field] is HasMany) {
relationships[key] =
(map[field] as HasMany).toSet().map((e) => e.id).toList();
}
if (map[field] is BelongsTo) {
relationships[key] = (map[field] as BelongsTo).value?.id;
}
}
map.remove(field);
}
return map..addAll(relationships.filterNulls);
}