| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  | import 'package:appflowy_backend/dispatch/dispatch.dart'; | 
					
						
							| 
									
										
										
										
											2024-06-13 01:32:16 +03:30
										 |  |  | import 'package:appflowy_backend/protobuf/flowy-database2/protobuf.dart'; | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  | import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart'; | 
					
						
							| 
									
										
										
										
											2024-02-24 20:54:10 +07:00
										 |  |  | import 'package:appflowy_result/appflowy_result.dart'; | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class GroupBackendService { | 
					
						
							|  |  |  |   GroupBackendService(this.viewId); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-25 16:37:36 +01:00
										 |  |  |   final String viewId; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-24 20:54:10 +07:00
										 |  |  |   Future<FlowyResult<void, FlowyError>> groupByField({ | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  |     required String fieldId, | 
					
						
							| 
									
										
										
										
											2024-06-13 01:32:16 +03:30
										 |  |  |     required List<int> settingContent, | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  |   }) { | 
					
						
							|  |  |  |     final payload = GroupByFieldPayloadPB.create() | 
					
						
							|  |  |  |       ..viewId = viewId | 
					
						
							| 
									
										
										
										
											2024-06-13 01:32:16 +03:30
										 |  |  |       ..fieldId = fieldId | 
					
						
							|  |  |  |       ..settingContent = settingContent; | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return DatabaseEventSetGroupByField(payload).send(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-24 20:54:10 +07:00
										 |  |  |   Future<FlowyResult<void, FlowyError>> updateGroup({ | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  |     required String groupId, | 
					
						
							| 
									
										
										
										
											2023-10-26 03:38:37 +02:00
										 |  |  |     required String fieldId, | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  |     String? name, | 
					
						
							|  |  |  |     bool? visible, | 
					
						
							|  |  |  |   }) { | 
					
						
							| 
									
										
										
										
											2023-10-26 03:38:37 +02:00
										 |  |  |     final payload = UpdateGroupPB.create() | 
					
						
							|  |  |  |       ..fieldId = fieldId | 
					
						
							|  |  |  |       ..viewId = viewId | 
					
						
							|  |  |  |       ..groupId = groupId; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  |     if (name != null) { | 
					
						
							|  |  |  |       payload.name = name; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (visible != null) { | 
					
						
							|  |  |  |       payload.visible = visible; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return DatabaseEventUpdateGroup(payload).send(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-11-06 16:17:05 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-24 20:54:10 +07:00
										 |  |  |   Future<FlowyResult<void, FlowyError>> createGroup({ | 
					
						
							| 
									
										
										
										
											2023-11-06 16:17:05 +08:00
										 |  |  |     required String name, | 
					
						
							|  |  |  |     String groupConfigId = "", | 
					
						
							|  |  |  |   }) { | 
					
						
							|  |  |  |     final payload = CreateGroupPayloadPB.create() | 
					
						
							|  |  |  |       ..viewId = viewId | 
					
						
							|  |  |  |       ..name = name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return DatabaseEventCreateGroup(payload).send(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-11-28 10:43:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-24 20:54:10 +07:00
										 |  |  |   Future<FlowyResult<void, FlowyError>> deleteGroup({ | 
					
						
							| 
									
										
										
										
											2023-11-28 10:43:22 +08:00
										 |  |  |     required String groupId, | 
					
						
							|  |  |  |   }) { | 
					
						
							|  |  |  |     final payload = DeleteGroupPayloadPB.create() | 
					
						
							|  |  |  |       ..viewId = viewId | 
					
						
							|  |  |  |       ..groupId = groupId; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return DatabaseEventDeleteGroup(payload).send(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-05-28 22:54:03 +08:00
										 |  |  | } |