26 lines
		
	
	
		
			803 B
		
	
	
	
		
			Dart
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			803 B
		
	
	
	
		
			Dart
		
	
	
		
			Executable File
		
	
	
	
	
| part of '../database.dart';
 | |
| 
 | |
| enum HistoryEntryType {
 | |
|   playlist,
 | |
|   album,
 | |
|   track,
 | |
| }
 | |
| 
 | |
| class HistoryTable extends Table {
 | |
|   IntColumn get id => integer().autoIncrement()();
 | |
|   DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
 | |
|   TextColumn get type => textEnum<HistoryEntryType>()();
 | |
|   TextColumn get itemId => text()();
 | |
|   TextColumn get data =>
 | |
|       text().map(const MapTypeConverter<String, dynamic>())();
 | |
| }
 | |
| 
 | |
| extension HistoryItemParseExtension on HistoryTableData {
 | |
|   PlaylistSimple? get playlist =>
 | |
|       type == HistoryEntryType.playlist ? PlaylistSimple.fromJson(data) : null;
 | |
|   AlbumSimple? get album =>
 | |
|       type == HistoryEntryType.album ? AlbumSimple.fromJson(data) : null;
 | |
|   Track? get track =>
 | |
|       type == HistoryEntryType.track ? Track.fromJson(data) : null;
 | |
| }
 |