part of '../database.dart'; class AudioPlayerStateTable extends Table { IntColumn get id => integer().autoIncrement()(); BoolColumn get playing => boolean()(); TextColumn get loopMode => textEnum()(); BoolColumn get shuffled => boolean()(); TextColumn get collections => text().map(const StringListConverter())(); TextColumn get tracks => text().map(const SpotubeTrackObjectListConverter())(); IntColumn get currentIndex => integer()(); } class SpotubeTrackObjectListConverter extends TypeConverter, String> { const SpotubeTrackObjectListConverter(); @override List fromSql(String fromDb) { return fromDb .split(",") .where((e) => e.isNotEmpty) .map( (e) => SpotubeTrackObject.fromJson( json.decode(e) as Map, ), ) .toList(); } @override String toSql(List value) { return value.map((e) => json.encode(e)).join(","); } }