Files
flutterApp/lib/features/devices/domain/usecases/route_planning_usecase.dart
Songzex e416416e85 开始作业,
暂停作业,
停止作业,
回复作业,
---初步待使用
2026-03-02 14:11:04 +08:00

57 lines
1.4 KiB
Dart

import 'dart:collection';
import 'package:fpdart/fpdart.dart';
import '../../data/models/device_add_path_point_model.dart';
import '../../domain/repositories/route_planning_repository.dart';
class RoutePlanningUseCase {
final RoutePlanningRepository repository;
RoutePlanningUseCase(this.repository);
Future<Either<RoutePlanningFailure, Unit>> startRoutePlanning(
Queue<DeviceAddPathPointModel> locationQueue,
) async {
try {
await repository.startRoutePlanning(locationQueue);
return right(unit);
} catch (e) {
return left(RoutePlanningFailure(message: e.toString()));
}
}
Future<Either<RoutePlanningFailure, Unit>> pauseRPWork() async {
try {
await repository.pauseRPWork();
return right(unit);
} catch (e) {
return left(RoutePlanningFailure(message: e.toString()));
}
}
Future<Either<RoutePlanningFailure, Unit>> resumeRPWork() async {
try {
await repository.resumeRPWork();
return right(unit);
} catch (e) {
return left(RoutePlanningFailure(message: e.toString()));
}
}
Future<Either<RoutePlanningFailure, Unit>> stopRoutePlanning() async {
try {
await repository.stopRoutePlanning();
return right(unit);
} catch (e) {
return left(RoutePlanningFailure(message: e.toString()));
}
}
}
// Failure 类型
class RoutePlanningFailure {
final String? message;
RoutePlanningFailure({this.message});
}