import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../core/services/agent/prompt_builder.dart'; import '../../../core/services/base/url_env_service.dart'; import '../../../core/services/actions/auto_fix_service.dart'; import '../../../core/services/actions/request_apply_service.dart'; import '../../../../providers/providers.dart'; import 'package:apidash_core/apidash_core.dart'; final promptBuilderProvider = Provider((ref) { return PromptBuilder(); }); final urlEnvServiceProvider = Provider((ref) { return UrlEnvService(); }); final requestApplyServiceProvider = Provider((ref) { return RequestApplyService(urlEnv: ref.read(urlEnvServiceProvider)); }); final autoFixServiceProvider = Provider((ref) { final collection = ref.read(collectionStateNotifierProvider.notifier); final urlEnv = ref.read(urlEnvServiceProvider); return AutoFixService( requestApply: ref.read(requestApplyServiceProvider), updateSelected: ({ required String id, HTTPVerb? method, String? url, List? headers, List? isHeaderEnabledList, String? body, ContentType? bodyContentType, List? formData, List? params, List? isParamEnabledList, String? postRequestScript, }) { collection.update( id: id, method: method, url: url, headers: headers, isHeaderEnabledList: isHeaderEnabledList, body: body, bodyContentType: bodyContentType, formData: formData, params: params, isParamEnabledList: isParamEnabledList, postRequestScript: postRequestScript, ); }, addNewRequest: (model, {name}) => collection.addRequestModel(model, name: name ?? 'New Request'), readCurrentRequestId: () => ref.read(selectedRequestModelProvider)?.id, ensureBaseUrl: (baseUrl) => urlEnv.ensureBaseUrlEnv( baseUrl, readEnvs: () => ref.read(environmentsStateNotifierProvider), readActiveEnvId: () => ref.read(activeEnvironmentIdStateProvider), updateEnv: (id, {values}) => ref .read(environmentsStateNotifierProvider.notifier) .updateEnvironment(id, values: values), ), readCurrentRequest: () => ref.read(selectedRequestModelProvider), ); });