From 1e2718e6780bee690820351da30e60b876d5bf3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Poizat?= Date: Thu, 4 Dec 2025 16:57:30 +0100 Subject: [PATCH] Add AI text interactor --- .../usecases/generate_ai_text_interactor.dart | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 scribe/lib/scribe/ai/domain/usecases/generate_ai_text_interactor.dart diff --git a/scribe/lib/scribe/ai/domain/usecases/generate_ai_text_interactor.dart b/scribe/lib/scribe/ai/domain/usecases/generate_ai_text_interactor.dart new file mode 100644 index 000000000..2539a5c67 --- /dev/null +++ b/scribe/lib/scribe/ai/domain/usecases/generate_ai_text_interactor.dart @@ -0,0 +1,27 @@ +import 'package:core/core.dart'; +import 'package:dartz/dartz.dart'; +import '../constants/ai_prompts.dart'; +import '../repository/ai_scribe_repository.dart'; +import '../state/generate_ai_text_state.dart'; +import '../../presentation/model/ai_action.dart'; + +class GenerateAITextInteractor { + final AIScribeRepository _repository; + + GenerateAITextInteractor(this._repository); + + Future> execute( + AIAction action, + String? selectedText, + ) async { + try { + final prompt = AIPrompts.buildPrompt(action, selectedText); + + final response = await _repository.generateText(prompt); + + return Right(GenerateAITextSuccess(response)); + } catch (e) { + return Left(GenerateAITextFailure(e)); + } + } +}