1+ import 'dart:typed_data' ;
2+
13import 'package:flow_api/models/note/database.dart' ;
24import 'package:flow_api/models/group/model.dart' ;
5+ import 'package:flow_api/models/note/model.dart' ;
6+ import 'package:flow_api/services/database.dart' ;
37
48class GroupNoteDatabaseConnector extends NoteDatabaseConnector <Group > {
9+ @override
10+ bool get usesPermission => true ;
511 @override
612 String get connectedIdName => "groupId" ;
713
@@ -14,3 +20,49 @@ class GroupNoteDatabaseConnector extends NoteDatabaseConnector<Group> {
1420 @override
1521 Group decode (Map <String , dynamic > data) => Group .fromDatabase (data);
1622}
23+
24+ class GroupNotebookDatabaseConnector
25+ extends DatabaseModelConnector <Notebook , Group > {
26+ @override
27+ bool get usesPermission => true ;
28+ @override
29+ String get connectedIdName => "groupId" ;
30+
31+ @override
32+ String get connectedTableName => "groups" ;
33+
34+ @override
35+ String get tableName => "groupNotebooks" ;
36+
37+ @override
38+ Future <List <Notebook >> getItems (Uint8List itemId,
39+ {int offset = 0 , int limit = 50 }) async {
40+ final result = await db? .query (
41+ '$tableName JOIN events ON notebookId = notebooks.id' ,
42+ limit: limit,
43+ offset: offset,
44+ where: '$connectedIdName = ?' ,
45+ whereArgs: [itemId],
46+ );
47+ return result? .map ((e) => Notebook .fromDatabase (e)).toList () ?? [];
48+ }
49+
50+ @override
51+ Future <List <Group >> getConnected (Uint8List connectId,
52+ {int offset = 0 , int limit = 50 }) async {
53+ final result = await db? .query (
54+ '$tableName JOIN groups ON groupId = groups.id' ,
55+ limit: limit,
56+ offset: offset,
57+ where: '$itemIdName = ?' ,
58+ whereArgs: [connectId],
59+ );
60+ return result? .map ((e) => Group .fromDatabase (e)).toList () ?? [];
61+ }
62+
63+ @override
64+ String get itemIdName => 'notebookId' ;
65+
66+ @override
67+ String get itemTableName => 'notebooks' ;
68+ }
0 commit comments