diff --git a/apps/mobile/packages/features/client/orders/create_order/lib/src/create_order_module.dart b/apps/mobile/packages/features/client/orders/create_order/lib/src/create_order_module.dart index 98f02894..b17c6513 100644 --- a/apps/mobile/packages/features/client/orders/create_order/lib/src/create_order_module.dart +++ b/apps/mobile/packages/features/client/orders/create_order/lib/src/create_order_module.dart @@ -35,6 +35,7 @@ class ClientCreateOrderModule extends Module { () => ClientCreateOrderRepositoryImpl( service: i.get(), rapidOrderService: i.get(), + fileUploadService: i.get(), ), ); diff --git a/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart b/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart index 6b58aa75..215e054f 100644 --- a/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart +++ b/apps/mobile/packages/features/client/orders/create_order/lib/src/data/repositories_impl/client_create_order_repository_impl.dart @@ -17,11 +17,14 @@ class ClientCreateOrderRepositoryImpl ClientCreateOrderRepositoryImpl({ required dc.DataConnectService service, required RapidOrderService rapidOrderService, + required FileUploadService fileUploadService, }) : _service = service, - _rapidOrderService = rapidOrderService; + _rapidOrderService = rapidOrderService, + _fileUploadService = fileUploadService; final dc.DataConnectService _service; final RapidOrderService _rapidOrderService; + final FileUploadService _fileUploadService; @override Future createOneTimeOrder(domain.OneTimeOrder order) async { @@ -412,8 +415,18 @@ class ClientCreateOrderRepositoryImpl @override Future transcribeRapidOrder(String audioPath) async { + // 1. Upload the audio file first + final String fileName = audioPath.split('/').last; + final FileUploadResponse uploadResponse = await _fileUploadService + .uploadFile( + filePath: audioPath, + fileName: fileName, + category: 'rapid-order-audio', + ); + + // 2. Transcribe using the remote URI final RapidOrderTranscriptionResponse response = await _rapidOrderService - .transcribeAudio(audioFileUri: audioPath); + .transcribeAudio(audioFileUri: uploadResponse.fileUri); return response.transcript; } diff --git a/apps/mobile/packages/features/client/orders/create_order/lib/src/presentation/pages/one_time_order_page.dart b/apps/mobile/packages/features/client/orders/create_order/lib/src/presentation/pages/one_time_order_page.dart index 11d8e1d7..1c83311f 100644 --- a/apps/mobile/packages/features/client/orders/create_order/lib/src/presentation/pages/one_time_order_page.dart +++ b/apps/mobile/packages/features/client/orders/create_order/lib/src/presentation/pages/one_time_order_page.dart @@ -53,7 +53,8 @@ class OneTimeOrderPage extends StatelessWidget { : null, hubManagers: state.managers.map(_mapManager).toList(), isValid: state.isValid, - title: state.isRapidDraft ? 'Rapid Order : Verify the order' : null, + title: state.isRapidDraft ? 'Rapid Order' : null, + subtitle: state.isRapidDraft ? 'Verify the order details' : null, onEventNameChanged: (String val) => bloc.add(OneTimeOrderEventNameChanged(val)), onVendorChanged: (Vendor val) => diff --git a/apps/mobile/packages/features/client/orders/orders_common/lib/src/presentation/widgets/one_time_order/one_time_order_view.dart b/apps/mobile/packages/features/client/orders/orders_common/lib/src/presentation/widgets/one_time_order/one_time_order_view.dart index bb80fcc4..97d0bb68 100644 --- a/apps/mobile/packages/features/client/orders/orders_common/lib/src/presentation/widgets/one_time_order/one_time_order_view.dart +++ b/apps/mobile/packages/features/client/orders/orders_common/lib/src/presentation/widgets/one_time_order/one_time_order_view.dart @@ -39,6 +39,7 @@ class OneTimeOrderView extends StatelessWidget { required this.onDone, required this.onBack, this.title, + this.subtitle, super.key, }); @@ -56,6 +57,7 @@ class OneTimeOrderView extends StatelessWidget { final OrderManagerUiModel? selectedHubManager; final bool isValid; final String? title; + final String? subtitle; final ValueChanged onEventNameChanged; final ValueChanged onVendorChanged; @@ -102,7 +104,7 @@ class OneTimeOrderView extends StatelessWidget { children: [ OneTimeOrderHeader( title: title ?? labels.title, - subtitle: labels.subtitle, + subtitle: subtitle ?? labels.subtitle, onBack: onBack, ), Expanded( @@ -140,7 +142,7 @@ class OneTimeOrderView extends StatelessWidget { children: [ OneTimeOrderHeader( title: title ?? labels.title, - subtitle: labels.subtitle, + subtitle: subtitle ?? labels.subtitle, onBack: onBack, ), Expanded(