diff --git a/lib/features/manage_account/domain/state/get_ai_scribe_config_state.dart b/lib/features/manage_account/domain/state/get_ai_scribe_config_state.dart new file mode 100644 index 000000000..e4ba3854e --- /dev/null +++ b/lib/features/manage_account/domain/state/get_ai_scribe_config_state.dart @@ -0,0 +1,18 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart'; + +class GettingAIScribeConfigState extends LoadingState {} + +class GetAIScribeConfigSuccess extends UIState { + GetAIScribeConfigSuccess(this.aiScribeConfig); + + final AIScribeConfig aiScribeConfig; + + @override + List get props => [aiScribeConfig]; +} + +class GetAIScribeConfigFailure extends FeatureFailure { + GetAIScribeConfigFailure({super.exception}); +} diff --git a/lib/features/manage_account/domain/usecases/get_ai_scribe_config_interactor.dart b/lib/features/manage_account/domain/usecases/get_ai_scribe_config_interactor.dart new file mode 100644 index 000000000..82d7d3659 --- /dev/null +++ b/lib/features/manage_account/domain/usecases/get_ai_scribe_config_interactor.dart @@ -0,0 +1,21 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:dartz/dartz.dart'; +import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart'; +import 'package:tmail_ui_user/features/manage_account/domain/state/get_ai_scribe_config_state.dart'; + +class GetAIScribeConfigInteractor { + const GetAIScribeConfigInteractor(this._manageAccountRepository); + + final ManageAccountRepository _manageAccountRepository; + + Stream> execute() async* { + try { + yield Right(GettingAIScribeConfigState()); + final preferencesSetting = await _manageAccountRepository.getLocalSettings(); + yield Right(GetAIScribeConfigSuccess(preferencesSetting.aiScribeConfig)); + } catch (e) { + yield Left(GetAIScribeConfigFailure(exception: e)); + } + } +}