diff --git a/lib/database.dart b/lib/database.dart index 084104d..0661ec8 100644 --- a/lib/database.dart +++ b/lib/database.dart @@ -17,6 +17,18 @@ class WorkModel { }); } +class PerformanceModel { + final Person person; + final Ensemble ensemble; + final Role role; + + PerformanceModel({ + this.person, + this.ensemble, + this.role, + }); +} + @UseMoor( include: { 'database.moor', @@ -75,14 +87,19 @@ class Database extends _$Database { } Future updateRecording( - Recording recording, List perfs) async { + Recording recording, List models) async { await transaction(() async { await (delete(performances) ..where((p) => p.recording.equals(recording.id))) .go(); await into(recordings).insert(recording, orReplace: true); - for (final perf in perfs) { - await into(performances).insert(perf); + for (final model in models) { + await into(performances).insert(Performance( + recording: recording.id, + person: model.person.id, + ensemble: model.ensemble.id, + role: model.role.id, + )); } }); } diff --git a/lib/selectors/performer.dart b/lib/selectors/performer.dart index 8c8a872..86cec2f 100644 --- a/lib/selectors/performer.dart +++ b/lib/selectors/performer.dart @@ -5,16 +5,6 @@ import '../database.dart'; import '../editors/person.dart'; import '../selectors/role.dart'; -class PerformanceModel { - final Person person; - final Role role; - - PerformanceModel({ - this.person, - this.role, - }); -} - // TODO: Allow selecting and adding ensembles. // TODO: Allow selecting instruments as roles. class PerformerSelector extends StatefulWidget {