import 'package:dartz/dartz.dart'; import 'package:appflowy_backend/dispatch/dispatch.dart'; import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-database/grid_entities.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-database/group_changeset.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-database/row_entities.pb.dart'; class RowFFIService { final String databaseId; RowFFIService({ required this.databaseId, }); Future> createRow(String rowId) { final payload = CreateRowPayloadPB.create() ..viewId = databaseId ..startRowId = rowId; return DatabaseEventCreateRow(payload).send(); } Future> getRow(String rowId) { final payload = RowIdPB.create() ..viewId = databaseId ..rowId = rowId; return DatabaseEventGetRow(payload).send(); } Future> deleteRow(String rowId) { final payload = RowIdPB.create() ..viewId = databaseId ..rowId = rowId; return DatabaseEventDeleteRow(payload).send(); } Future> duplicateRow(String rowId) { final payload = RowIdPB.create() ..viewId = databaseId ..rowId = rowId; return DatabaseEventDuplicateRow(payload).send(); } } class MoveRowFFIService { final String viewId; MoveRowFFIService({ required this.viewId, }); Future> moveRow({ required String fromRowId, required String toRowId, }) { var payload = MoveRowPayloadPB.create() ..viewId = viewId ..fromRowId = fromRowId ..toRowId = toRowId; return DatabaseEventMoveRow(payload).send(); } Future> moveGroupRow({ required String fromRowId, required String toGroupId, required String? toRowId, }) { var payload = MoveGroupRowPayloadPB.create() ..viewId = viewId ..fromRowId = fromRowId ..toGroupId = toGroupId; if (toRowId != null) { payload.toRowId = toRowId; } return DatabaseEventMoveGroupRow(payload).send(); } Future> moveGroup({ required String fromGroupId, required String toGroupId, }) { final payload = MoveGroupPayloadPB.create() ..viewId = viewId ..fromGroupId = fromGroupId ..toGroupId = toGroupId; return DatabaseEventMoveGroup(payload).send(); } }