Files
feature-tenant/lib/features/devices/domain/usecases/generate_path_usecase.dart

41 lines
1.4 KiB
Dart

import 'package:fpdart/fpdart.dart';
import '../../../../core/error/failure.dart';
import '../../../../core/error/failure.dart' as core_error;
import '../../../auth/domain/errors/auth_failure.dart';
import '../../data/models/device_add_path_point_model.dart';
import '../../data/models/device_work_area_param_model.dart';
import '../repositories/path_repository.dart';
abstract class GeneratePathUseCase {
Future<Either<Failure, List<DeviceAddPathPointModel>>> execute({
required ReferencePoint reference,
required int heading,
required OuterBoundary outer,
required Map<String, HoleBoundary> holes,
required int workType,
});
}
class GeneratePathUseCaseImpl implements GeneratePathUseCase {
final PathRepository _repository;
GeneratePathUseCaseImpl(this._repository);
@override
Future<Either<Failure, List<DeviceAddPathPointModel>>> execute({
required ReferencePoint reference,
required int heading,
required OuterBoundary outer,
required Map<String, HoleBoundary> holes,
required int workType,
}) async {
try {
final result = await _repository.generatePath(reference: reference, heading: heading, outer: outer, holes: holes, workType: workType);
return Right(result); // 成功时返回 Right
} catch (e) {
return Left(core_error.ServerFailure(e.toString())); // 失败时返回 Left
}
}
}