From 221b481114e1b4e4d870dd9e673b1cd292c000ad Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Thu, 7 Dec 2023 10:48:05 +0300 Subject: [PATCH 1/5] refined models --- android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- lib/config/provider_routes.dart | 14 +- lib/main.dart | 11 +- lib/repositories/branch_repo.dart | 4 +- lib/repositories/items_repo.dart | 4 +- lib/repositories/schedule_repo.dart | 4 +- lib/repositories/subscription_repo.dart | 3 +- lib/view_models/dashboard_view_model.dart | 4 +- lib/view_models/items_view_model.dart | 4 +- lib/view_models/schedule_view_model.dart | 4 +- lib/view_models/service_view_model.dart | 16 +- lib/view_models/subscriptions_view_model.dart | 2 +- lib/views/dashboard/dashboard_page.dart | 44 +- .../dashboard/fragments/ads_fragment.dart | 2 + .../dashboard/fragments/home_fragment.dart | 13 + .../fragments/my_requests_fragment.dart | 68 +++ .../fragments/request_list_fragment.dart | 110 ---- lib/views/dashboard/widget/drawer_widget.dart | 2 +- .../widget/request_list_card_widget.dart | 3 +- lib/views/requests/request_detail_page.dart | 91 +++- .../settings/branch/branch_detail_page.dart | 22 +- .../settings/branch/branch_list_page.dart | 2 +- .../branch/dealer/dealer_user_page.dart | 7 +- .../dealer/widget/add_phone_num_wiget.dart | 6 +- .../widget/assign_dealer_user_sheet.dart | 7 +- .../settings/branch/define_branch_page.dart | 10 +- lib/views/settings/define_license_page.dart | 7 +- .../settings/schedule/add_schedules_page.dart | 7 +- .../schedule/schedules_list_page.dart | 4 +- .../settings/services/create_item_page.dart | 6 +- .../services/create_services_page3.dart | 2 +- .../duplication/matched_services_page.dart | 7 +- .../sheet/items_selection_sheet.dart | 5 +- .../settings/services/items_list_page.dart | 6 +- .../settings/services/services_list_page.dart | 2 +- .../subscriptions/my_subscritions_page.dart | 2 - .../subscriptions/subscriptions_page.dart | 2 +- .../widget/subscriptions_card.dart | 4 +- pubspec.lock | 510 ++++++++++++------ pubspec.yaml | 4 +- 41 files changed, 590 insertions(+), 439 deletions(-) create mode 100644 lib/views/dashboard/fragments/my_requests_fragment.dart delete mode 100644 lib/views/dashboard/fragments/request_list_fragment.dart diff --git a/android/build.gradle b/android/build.gradle index 543cb25..aca8b4a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index f371643..ae04661 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/lib/config/provider_routes.dart b/lib/config/provider_routes.dart index d771bdc..b01bc76 100644 --- a/lib/config/provider_routes.dart +++ b/lib/config/provider_routes.dart @@ -3,14 +3,11 @@ import 'package:car_provider_app/views/appoinments/update_appointment_page.dart' import 'package:car_provider_app/views/requests/request_detail_page.dart'; import 'package:car_provider_app/views/requests/send_offer_page.dart'; import 'package:car_provider_app/views/settings/branch/branch_detail_page.dart'; -import 'package:car_provider_app/views/settings/branch/branch_list_page.dart'; import 'package:car_provider_app/views/settings/branch/dealer/dealer_user_page.dart'; import 'package:car_provider_app/views/settings/branch/define_branch_page.dart'; -import 'package:car_provider_app/views/settings/create_services_page.dart'; import 'package:car_provider_app/views/settings/schedule/add_schedules_page.dart'; import 'package:car_provider_app/views/settings/schedule/schedules_list_page.dart'; import 'package:car_provider_app/views/settings/services/create_item_page.dart'; -import 'package:car_provider_app/views/settings/services/create_services_page2.dart'; import 'package:car_provider_app/views/settings/dealership_page.dart'; import 'package:car_provider_app/views/settings/define_license_page.dart'; import 'package:car_provider_app/views/settings/services/create_services_page3.dart'; @@ -22,10 +19,9 @@ import 'package:car_provider_app/views/subscriptions/my_subscritions_page.dart'; import 'package:car_provider_app/views/subscriptions/subscriptions_page.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; - import 'package:flutter/material.dart'; -import 'package:mc_common_app/models/model/provider_model.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; +import 'package:mc_common_app/models/requests_models/request_model.dart'; import 'package:mc_common_app/views/advertisement/ads_detail_view.dart'; import 'package:mc_common_app/views/advertisement/create_ad_view.dart'; @@ -43,10 +39,6 @@ class ProviderAppRoutes { static const String appointmentDetailList = "/appointmentDetailList"; static const String updateAppointmentPage = "/updateAppointmentPage"; - //Requests - static const String requestsDetailPage = "/requestsDetailPage"; - static const String sendOfferPage = "/sendOfferPage"; - //Services static const String dealerUser = "/dealerUser"; static const String servicesList = "/servicesList"; @@ -81,8 +73,8 @@ class ProviderAppRoutes { updateAppointmentPage: (context) => const UpdateAppointmentPage(), //Requests - requestsDetailPage: (context) => const RequestDetailPage(), - sendOfferPage: (context) => const SendOfferPage(), + AppRoutes.requestsDetailPage: (context) => RequestDetailPage(requestDetail: ModalRoute.of(context)!.settings.arguments as RequestModel), + AppRoutes.sendOfferPage: (context) => const SendOfferPage(), //Subscriptions AppRoutes.mySubscriptionsPage: (context) => const MySubscriptionsPage(), diff --git a/lib/main.dart b/lib/main.dart index bf6cba4..2ede99d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,7 +3,6 @@ import 'package:car_provider_app/repositories/branch_repo.dart'; import 'package:car_provider_app/repositories/items_repo.dart'; import 'package:car_provider_app/repositories/schedule_repo.dart'; import 'package:car_provider_app/repositories/subscription_repo.dart'; -import 'package:car_provider_app/view_models/branch_view_model.dart'; import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:car_provider_app/view_models/schedule_view_model.dart'; @@ -12,11 +11,11 @@ import 'package:car_provider_app/view_models/subscriptions_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/routes.dart'; -import 'package:mc_common_app/models/post_params_model.dart'; +import 'package:mc_common_app/models/general/post_params_model.dart'; import 'package:mc_common_app/repositories/ads_repo.dart'; +import 'package:mc_common_app/repositories/chat_repo.dart'; import 'package:mc_common_app/repositories/common_repo.dart'; import 'package:mc_common_app/repositories/request_repo.dart'; import 'package:mc_common_app/repositories/user_repo.dart'; @@ -25,6 +24,7 @@ import 'package:mc_common_app/theme/app_theme.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; +import 'package:mc_common_app/view_models/chat_view_model.dart'; import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:mc_common_app/view_models/user_view_model.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; @@ -95,6 +95,11 @@ Future main() async { requestRepo: injector.get(), ), ), + ChangeNotifierProvider( + create: (_) => ChatVM( + chatRepo: injector.get(), + ), + ), ], child: const MyApp(), ).setupLocale()); diff --git a/lib/repositories/branch_repo.dart b/lib/repositories/branch_repo.dart index b4de6b5..93400b7 100644 --- a/lib/repositories/branch_repo.dart +++ b/lib/repositories/branch_repo.dart @@ -8,9 +8,9 @@ import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; -import 'package:mc_common_app/models/m_response.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; -import 'package:mc_common_app/models/model/provider_model.dart'; +import 'package:mc_common_app/models/provider_branches_models/provider_model.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/branch.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/categroy.dart'; diff --git a/lib/repositories/items_repo.dart b/lib/repositories/items_repo.dart index 7e05df1..421540e 100644 --- a/lib/repositories/items_repo.dart +++ b/lib/repositories/items_repo.dart @@ -4,8 +4,8 @@ import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/services/item_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/services_models/item_model.dart'; abstract class ItemsRepo { Future createServiceItems(Map map); diff --git a/lib/repositories/schedule_repo.dart b/lib/repositories/schedule_repo.dart index 7717877..06ab128 100644 --- a/lib/repositories/schedule_repo.dart +++ b/lib/repositories/schedule_repo.dart @@ -1,10 +1,10 @@ +import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; -import 'package:mc_common_app/models/schedule_model.dart'; import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; -import 'package:mc_common_app/models/m_response.dart'; abstract class ScheduleRepo { Future getAllServices(String branchId); diff --git a/lib/repositories/subscription_repo.dart b/lib/repositories/subscription_repo.dart index 7750b39..75a2ed6 100644 --- a/lib/repositories/subscription_repo.dart +++ b/lib/repositories/subscription_repo.dart @@ -3,8 +3,7 @@ import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/subscription_model.dart'; +import 'package:mc_common_app/models/subscriptions_models/subscription_model.dart'; abstract class SubscriptionRepo { Future getAllSubscriptions(String? serviceProviderID); diff --git a/lib/view_models/dashboard_view_model.dart b/lib/view_models/dashboard_view_model.dart index c81ba2f..f5095dc 100644 --- a/lib/view_models/dashboard_view_model.dart +++ b/lib/view_models/dashboard_view_model.dart @@ -5,7 +5,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/models/user/image_response.dart'; +import 'package:mc_common_app/models/user_models/image_response.dart'; import 'package:mc_common_app/repositories/user_repo.dart'; import 'package:mc_common_app/services/common_services.dart'; import 'package:mc_common_app/utils/location/Location.dart'; @@ -61,7 +61,7 @@ class DashboardVM extends BaseVM { String userName = await SharedPrefManager.getPhoneOrEmail(); Location.getCurrentLocation( (LatLng? latlng) { - AppState().currentLocation = latlng ?? new LatLng(0, 0); + AppState().currentLocation = latlng ?? const LatLng(0, 0); }, ); notifyListeners(); diff --git a/lib/view_models/items_view_model.dart b/lib/view_models/items_view_model.dart index 6747189..6ed24f1 100644 --- a/lib/view_models/items_view_model.dart +++ b/lib/view_models/items_view_model.dart @@ -1,8 +1,8 @@ import 'dart:io'; import 'package:car_provider_app/repositories/items_repo.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/services/item_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/services/common_services.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/utils.dart'; diff --git a/lib/view_models/schedule_view_model.dart b/lib/view_models/schedule_view_model.dart index 87a00a6..62eaa4d 100644 --- a/lib/view_models/schedule_view_model.dart +++ b/lib/view_models/schedule_view_model.dart @@ -1,8 +1,8 @@ +import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; -import 'package:mc_common_app/models/schedule_model.dart'; import 'package:car_provider_app/repositories/schedule_repo.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/chips_picker_item.dart'; -import 'package:mc_common_app/models/m_response.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; diff --git a/lib/view_models/service_view_model.dart b/lib/view_models/service_view_model.dart index 12bb9a7..4be2b49 100644 --- a/lib/view_models/service_view_model.dart +++ b/lib/view_models/service_view_model.dart @@ -235,28 +235,26 @@ // } // } -import 'dart:convert'; import 'dart:io'; - import 'package:car_provider_app/repositories/branch_repo.dart'; import 'package:file_picker/file_picker.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/model/provider_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/provider_branches_models/provider_model.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/categroy.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/document.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; -import 'package:mc_common_app/models/services/item_model.dart'; -import 'package:mc_common_app/models/services/service_model.dart'; -import 'package:mc_common_app/models/user/cities.dart'; -import 'package:mc_common_app/models/user/country.dart'; +import 'package:mc_common_app/models/services_models/item_model.dart'; +import 'package:mc_common_app/models/services_models/service_model.dart'; +import 'package:mc_common_app/models/user_models/branch_user.dart'; +import 'package:mc_common_app/models/user_models/cities.dart'; +import 'package:mc_common_app/models/user_models/country.dart'; import 'package:mc_common_app/repositories/common_repo.dart'; import 'package:mc_common_app/services/common_services.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; -import 'package:mc_common_app/models/user/branch_user.dart'; class ServiceVM extends BaseVM { final BranchRepo branchRepo; diff --git a/lib/view_models/subscriptions_view_model.dart b/lib/view_models/subscriptions_view_model.dart index 6992490..a370bf6 100644 --- a/lib/view_models/subscriptions_view_model.dart +++ b/lib/view_models/subscriptions_view_model.dart @@ -1,6 +1,6 @@ import 'package:car_provider_app/repositories/subscription_repo.dart'; -import 'package:mc_common_app/models/subscription_model.dart'; +import 'package:mc_common_app/models/subscriptions_models/subscription_model.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index 5c4109e..8869ae1 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -1,26 +1,20 @@ import 'dart:async'; -import 'package:badges/badges.dart' as b; - import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/dashboard/fragments/ads_fragment.dart'; import 'package:car_provider_app/views/dashboard/fragments/appoinment_fragment.dart'; - +import 'package:car_provider_app/views/dashboard/fragments/my_requests_fragment.dart'; import 'package:car_provider_app/views/dashboard/widget/drawer_widget.dart'; import 'package:car_provider_app/views/settings/branch/branch_list_page.dart'; - import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/consts.dart'; -import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/theme/colors.dart'; +import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; +import 'package:mc_common_app/view_models/chat_view_model.dart'; import 'package:mc_common_app/view_models/requests_view_model.dart'; -import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/bottom_nav_bar.dart'; import 'package:provider/provider.dart'; import 'fragments/home_fragment.dart'; -import 'fragments/request_list_fragment.dart'; class DashboardPage extends StatefulWidget { const DashboardPage({Key? key}) : super(key: key); @@ -44,15 +38,25 @@ class _DashboardPageState extends State { } Future _onRefresh() async { - context.read().populateAdsFilterList(); - context.read().getBranchAndServices(); - AdVM adVm = Provider.of(context, listen: false); - if (adVm.myAds.isEmpty) { - await adVm.getMyAds(); + final requestsVM = context.read(); + final adVM = context.read(); + final serviceVM = context.read(); + final chatVM = context.read(); + adVM.populateAdsFilterList(); + serviceVM.getBranchAndServices(); + + if (adVM.myAds.isEmpty) { + await adVM.getMyAds(); + } + if (adVM.exploreAds.isEmpty) { + await adVM.getExploreAds(); } - if (adVm.exploreAds.isEmpty) { - await adVm.getExploreAds(); + + if (requestsVM.myRequests.isEmpty) { + await requestsVM.getRequests(appType: AppType.provider); } + + await chatVM.buildHubConnection(); } @override @@ -65,7 +69,7 @@ class _DashboardPageState extends State { ), AppointmentFragment( onBackButtonTapped: () { - dashboardVM.updateIndex(2); + dashboardVM.updateIndex(2); }, ), HomeFragment( @@ -81,11 +85,7 @@ class _DashboardPageState extends State { dashboardVM.updateIndex(2); }, ), - RequestListFragment( - onBackButtonTapped: () { - dashboardVM.updateIndex(2); - }, - ), + const MyRequestsFragment(), ]; return Scaffold( diff --git a/lib/views/dashboard/fragments/ads_fragment.dart b/lib/views/dashboard/fragments/ads_fragment.dart index 56ec012..86733f2 100644 --- a/lib/views/dashboard/fragments/ads_fragment.dart +++ b/lib/views/dashboard/fragments/ads_fragment.dart @@ -6,6 +6,7 @@ import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; +import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:mc_common_app/views/advertisement/ads_list.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; @@ -116,6 +117,7 @@ class AdsFragment extends StatelessWidget { floatingActionButton: FloatingActionButton( onPressed: () { context.read().getVehicleTypes(); + context.read().populateRequestsFilterList(); navigateWithName(context, AppRoutes.createAdView); }, diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index a043076..82f4dda 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -1,11 +1,14 @@ import 'package:car_provider_app/views/dashboard/widget/my_service_provider.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; +import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; +import 'package:mc_common_app/view_models/chat_view_model.dart'; import 'package:mc_common_app/views/advertisement/ads_list.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; @@ -31,6 +34,16 @@ class HomeFragment extends StatelessWidget { profileImageUrl: MyAssets.carBanner, onTap: onTap, actions: [ + Row( + children: [ + "${AppState().currentAppType}".toText(color: MyColors.darkTextColor).onPress(() async { + print("myId: ${AppState().getUser.data!.userInfo!.userId}"); + // final chatVM = context.read(); + // await chatVM.buildHubConnection(); + }), + ], + ), + 10.width, IconButton( onPressed: () {}, icon: const b.Badge( diff --git a/lib/views/dashboard/fragments/my_requests_fragment.dart b/lib/views/dashboard/fragments/my_requests_fragment.dart new file mode 100644 index 0000000..7b9faf5 --- /dev/null +++ b/lib/views/dashboard/fragments/my_requests_fragment.dart @@ -0,0 +1,68 @@ +import 'package:car_provider_app/generated/locale_keys.g.dart'; +import 'package:mc_common_app/view_models/requests_view_model.dart'; +import 'package:flutter/material.dart'; +import 'package:mc_common_app/extensions/int_extensions.dart'; +import 'package:mc_common_app/extensions/string_extensions.dart'; +import 'package:mc_common_app/theme/colors.dart'; +import 'package:mc_common_app/utils/enums.dart'; +import 'package:mc_common_app/views/requests/widget/request_item.dart'; +import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; +import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; +import 'package:provider/provider.dart'; +import 'package:easy_localization/easy_localization.dart'; + +class MyRequestsFragment extends StatelessWidget { + final bool isNeedAppBar; + + const MyRequestsFragment({super.key, this.isNeedAppBar = true}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: !isNeedAppBar ? null : CustomAppBar(title: LocaleKeys.myServiceBranches.tr()), + body: Container( + color: MyColors.backgroundColor, + width: double.infinity, + height: double.infinity, + child: Consumer(builder: (BuildContext context, RequestsVM requestsVM, Widget? child) { + + return Column( + children: [ + 16.height, + FiltersList( + filterList: requestsVM.requestsTypeFilterOptions, + onFilterTapped: (index, selectedFilterId) { + requestsVM.applyFilterOnRequestsVM(requestsTypeEnum: selectedFilterId.toRequestTypeStatusEnum()); + }, + ), + 8.height, + Expanded( + child: RefreshIndicator( + onRefresh: () async => await requestsVM.getRequests(isNeedToRebuild: true, appType: AppType.provider), + child: requestsVM.state == ViewState.busy + ? const Center(child: CircularProgressIndicator()) + : requestsVM.myFilteredRequests.isEmpty + ? Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + "No Requests to show.".toText(fontSize: 16, color: MyColors.lightTextColor), + ], + ) + : ListView.separated( + itemBuilder: (context, index) { + return RequestItem(request: requestsVM.myFilteredRequests[index], appType: AppType.provider,); + }, + separatorBuilder: (context, index) { + return 16.height; + }, + itemCount: requestsVM.myFilteredRequests.length, + padding: const EdgeInsets.only(left: 16, right: 16, bottom: 16, top: 8), + ), + )) + ], + ); + }), + ), + ); + } +} diff --git a/lib/views/dashboard/fragments/request_list_fragment.dart b/lib/views/dashboard/fragments/request_list_fragment.dart deleted file mode 100644 index 1e9a522..0000000 --- a/lib/views/dashboard/fragments/request_list_fragment.dart +++ /dev/null @@ -1,110 +0,0 @@ -import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/consts.dart'; -import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/theme/colors.dart'; -import 'package:mc_common_app/view_models/requests_view_model.dart'; -import 'package:mc_common_app/views/requests/widget/request_item.dart'; - -import 'package:mc_common_app/widgets/button/show_fill_button.dart'; -import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; -import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; -import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; - -import 'package:mc_common_app/widgets/tab/menu_tabs.dart'; - -import 'package:provider/provider.dart'; - -class RequestListFragment extends StatelessWidget { - VoidCallback onBackButtonTapped; - - RequestListFragment({required this.onBackButtonTapped, Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: CustomAppBar( - profileImageUrl: MyAssets.carBanner, - title: "Requests", - onBackButtonTapped: onBackButtonTapped, - actions: [ - IconButton( - onPressed: () {}, - icon: const Icon(Icons.search), - ), - 10.width, - ], - ), - body: SizedBox( - width: double.infinity, - height: double.infinity, - child: Column( - children: [ - 21.height, - MenuTabs( - 0, - [ - DropValue(0, "Special Request", ""), - DropValue(1, "My Offers", ""), - ], - onSelect: (DropValue dropValue) {}, - selectedColor: MyColors.darkPrimaryColor, - ), - 12.height, - Expanded( - child: Consumer(builder: (BuildContext context, RequestsVM requestsVM, Widget? child) { - return Column( - children: [ - ShowFillButton( - title: "title", - onPressed: () { - context.read().getRequests(); - }), - 16.height, - FiltersList( - filterList: requestsVM.requestsFilterOptions, - onFilterTapped: (index, selectedFilterId) => requestsVM.applyFilterOnRequestsVM(index: index), - ), - 8.height, - Expanded( - child: requestsVM.isRequestLoading - ? const Center(child: CircularProgressIndicator()) - : requestsVM.requests.isEmpty - ? Center( - child: "No Request Available".toText( - isBold: true, - ), - ) - : ListView.separated( - itemBuilder: (context, index) { - return RequestItem(requestsVM.requests[index]); - }, - separatorBuilder: (context, index) { - return 16.height; - }, - itemCount: requestsVM.requests.length, - padding: const EdgeInsets.only( - left: 16, - right: 16, - bottom: 16, - top: 8, - ), - ), - ) - ], - ); - }), - ), - // const Padding( - // padding: EdgeInsets.symmetric(horizontal: 21), - // child: RequestListCardWidget( - // count: 12, - // ), - // ) - ], - ), - ), - ); - } -} diff --git a/lib/views/dashboard/widget/drawer_widget.dart b/lib/views/dashboard/widget/drawer_widget.dart index a6388b5..86d9593 100644 --- a/lib/views/dashboard/widget/drawer_widget.dart +++ b/lib/views/dashboard/widget/drawer_widget.dart @@ -12,7 +12,7 @@ import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/user/image_response.dart'; +import 'package:mc_common_app/models/user_models/image_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/utils.dart'; diff --git a/lib/views/dashboard/widget/request_list_card_widget.dart b/lib/views/dashboard/widget/request_list_card_widget.dart index 512d18c..3a2183e 100644 --- a/lib/views/dashboard/widget/request_list_card_widget.dart +++ b/lib/views/dashboard/widget/request_list_card_widget.dart @@ -1,6 +1,7 @@ import 'package:car_provider_app/config/provider_routes.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -82,7 +83,7 @@ class RequestListCardWidget extends StatelessWidget { width: double.infinity, allPading: 12, onTap: () { - navigateWithName(context, ProviderAppRoutes.requestsDetailPage); + navigateWithName(context, AppRoutes.requestsDetailPage); }, ); } diff --git a/lib/views/requests/request_detail_page.dart b/lib/views/requests/request_detail_page.dart index b6e753d..3a8b6a5 100644 --- a/lib/views/requests/request_detail_page.dart +++ b/lib/views/requests/request_detail_page.dart @@ -1,19 +1,80 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; +import 'package:mc_common_app/models/requests_models/request_model.dart'; import 'package:mc_common_app/theme/colors.dart'; -import 'package:mc_common_app/utils/navigator.dart'; +import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; +import 'package:mc_common_app/widgets/common_widgets/info_bottom_sheet.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; - -import '../../config/provider_routes.dart'; -import '../dashboard/widget/request_list_card_widget.dart'; +import 'package:mc_common_app/widgets/txt_field.dart'; +import 'package:provider/provider.dart'; class RequestDetailPage extends StatelessWidget { - const RequestDetailPage({Key? key}) : super(key: key); + final RequestModel requestDetail; + + const RequestDetailPage({Key? key, required this.requestDetail}) : super(key: key); + + Future buildSendOfferBottomSheet(BuildContext context) { + return showModalBottomSheet( + context: context, + isScrollControlled: true, + enableDrag: true, + builder: (BuildContext context) { + return Consumer(builder: (BuildContext context, RequestsVM requestsVM, Widget? child) { + return InfoBottomSheet( + title: "Make an offer".toText(fontSize: 28, isBold: true, letterSpacing: -1.44), + description: Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + 12.height, + TxtField( + value: requestsVM.offerPrice, + errorValue: requestsVM.offerPriceError, + keyboardType: TextInputType.number, + hint: "Enter amount", + onChanged: (v) => requestsVM.updateOfferPrice(v), + ), + 12.height, + TxtField( + maxLines: 5, + value: requestsVM.offerDescription, + errorValue: requestsVM.offerDescriptionError, + keyboardType: TextInputType.text, + hint: "Description", + onChanged: (v) => requestsVM.updateOfferDescription(v), + ), + ], + ), + 25.height, + ShowFillButton( + title: "Submit", + onPressed: () { + requestsVM.onSendOfferPressed( + context: context, + receiverId: "c1ab141e-9014-4fec-44d7-08db290c1cca", //Todo: This should be included in the request model + message: requestsVM.offerDescription, + requestId: requestDetail.id, + offerPrice: requestsVM.offerPrice, + ); + }, + maxWidth: double.infinity, + ), + 19.height, + ], + ), + )); + }); + }, + ); + } @override Widget build(BuildContext context) { @@ -47,7 +108,8 @@ class RequestDetailPage extends StatelessWidget { maxWidth: double.infinity, margin: const EdgeInsets.all(21), onPressed: () { - navigateWithName(context, ProviderAppRoutes.sendOfferPage); + buildSendOfferBottomSheet(context); + // navigateWithName(context, AppRoutes.sendOfferPage); }, ), ], @@ -69,8 +131,9 @@ class RequestDetailPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ - "Toyota Crolla".toText(fontSize: 16, isBold: true), - showItem("Model:", "2019"), + requestDetail.vehicleTypeName.toText(fontSize: 16, isBold: true), + showItem("Manufacturer:", requestDetail.brand), + showItem("Model:", "${requestDetail.year}"), ], ), ), @@ -78,16 +141,16 @@ class RequestDetailPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.start, children: [ - "Riyadh".toText( + "${requestDetail.city ?? ""} ${requestDetail.countryName}".toText( color: MyColors.lightTextColor, ), - "9 Hours Ago".toText(color: MyColors.lightTextColor), + requestDetail.createdOn.getTimeAgo().toText(color: MyColors.lightTextColor), ], ), ], ), - showItem("Customer Name", "Abdullah"), - showItem("Description", "Looking for the car as soon as possible"), + showItem("Customer Name", "${requestDetail.customer}"), + showItem("Description", requestDetail.description), showItem("Price Range:", ""), Row( children: [ @@ -96,7 +159,7 @@ class RequestDetailPage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.end, children: [ - "30,000".toText(fontSize: 16, isBold: true), + "${requestDetail.price.toInt()}".toText(fontSize: 16, isBold: true), 2.width, "SAR:".toText( color: MyColors.lightTextColor, diff --git a/lib/views/settings/branch/branch_detail_page.dart b/lib/views/settings/branch/branch_detail_page.dart index 555bfe1..6eed18e 100644 --- a/lib/views/settings/branch/branch_detail_page.dart +++ b/lib/views/settings/branch/branch_detail_page.dart @@ -1,20 +1,14 @@ -import 'dart:convert'; -import 'dart:developer'; - import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/services/services_list_page.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; - -import 'package:car_provider_app/view_models/branch_view_model.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; -import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/model/provider_model.dart'; +import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/categroy.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -26,18 +20,16 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; -import '../../../generated/locale_keys.g.dart'; - class BranchDetailPage extends StatelessWidget { - BranchDetailModel branchData; + final BranchDetailModel branchData; - BranchDetailPage(this.branchData); + BranchDetailPage(this.branchData, {super.key}); List categories = []; @override Widget build(BuildContext context) { - branchData.branchServices!.forEach((element) { + for (var element in branchData.branchServices!) { categories.add( CategoryData( id: element.categoryId, @@ -45,15 +37,15 @@ class BranchDetailPage extends StatelessWidget { categoryNameN: element.categoryName, ), ); - }); + } categories = categories.toSet().toList(); for (var payment in categories) { - branchData.branchServices!.forEach((element) { + for (var element in branchData.branchServices!) { if (payment.id == element.categoryId) { payment.services ??= []; payment.services!.add(element); } - }); + } } branchData.categories = categories; return Scaffold( diff --git a/lib/views/settings/branch/branch_list_page.dart b/lib/views/settings/branch/branch_list_page.dart index 0f59a85..1e3346a 100644 --- a/lib/views/settings/branch/branch_list_page.dart +++ b/lib/views/settings/branch/branch_list_page.dart @@ -11,7 +11,7 @@ import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/m_response.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; diff --git a/lib/views/settings/branch/dealer/dealer_user_page.dart b/lib/views/settings/branch/dealer/dealer_user_page.dart index 1fd249f..f5abaff 100644 --- a/lib/views/settings/branch/dealer/dealer_user_page.dart +++ b/lib/views/settings/branch/dealer/dealer_user_page.dart @@ -1,11 +1,10 @@ -import 'package:car_provider_app/views/settings/branch/dealer/widget/add_phone_num_wiget.dart'; +import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/user/branch_user.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/utils.dart'; @@ -15,8 +14,6 @@ import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; -import '../../../../view_models/service_view_model.dart'; - class DealerUserPage extends StatefulWidget { String branchId; diff --git a/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart b/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart index 596fe39..0c8b416 100644 --- a/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart +++ b/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart @@ -5,14 +5,13 @@ import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/user/country.dart'; +import 'package:mc_common_app/models/user_models/country.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/user_view_model.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; -import 'package:mc_common_app/widgets/tab/login_email_tab.dart'; import 'package:mc_common_app/widgets/txt_field.dart'; import 'package:provider/provider.dart'; @@ -88,10 +87,11 @@ class _AddPhoneNumWidgetState extends State { onPressed: () { //User Role: Dealer|Manager for a branch FocusScope.of(context).unfocus(); - if (validation()) + if (validation()) { userVM.performBasicOtpRegisterPage(context, countryCode: countryCode, phoneNum: phoneNum, role: 7, isNeedToPassToken: true, reloadPage: () { pop(context); }); + } }, ), ), diff --git a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart index eecc724..cad1028 100644 --- a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart +++ b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/m_response.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; @@ -14,6 +14,7 @@ import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; +// ignore: must_be_immutable class AssignDealerUserSheet extends StatefulWidget { String branchId; VoidCallback callBackFunc; @@ -179,11 +180,11 @@ class _AssignDealerUserSheetState extends State { bool validation() { bool isValid = false; - provider.allProviderDealersList.forEach((element) { + for (var element in provider.allProviderDealersList) { if (element.isBranchUser) { isValid = true; } - }); + } return isValid; } } diff --git a/lib/views/settings/branch/define_branch_page.dart b/lib/views/settings/branch/define_branch_page.dart index b9f9459..181e30f 100644 --- a/lib/views/settings/branch/define_branch_page.dart +++ b/lib/views/settings/branch/define_branch_page.dart @@ -1,14 +1,12 @@ +// ignore_for_file: must_be_immutable + import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; - -import 'package:car_provider_app/view_models/branch_view_model.dart'; import 'package:car_provider_app/views/location/pick_location_page.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/model/provider_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; @@ -24,7 +22,7 @@ import 'package:provider/provider.dart'; class DefineBranchPage extends StatelessWidget { BranchDetailModel? branchData; - DefineBranchPage(this.branchData); + DefineBranchPage(this.branchData, {super.key}); @override Widget build(BuildContext context) { diff --git a/lib/views/settings/define_license_page.dart b/lib/views/settings/define_license_page.dart index 0943f17..77a12e2 100644 --- a/lib/views/settings/define_license_page.dart +++ b/lib/views/settings/define_license_page.dart @@ -1,17 +1,12 @@ -import 'dart:convert'; -import 'dart:io'; import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; - -import 'package:car_provider_app/view_models/branch_view_model.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/models/m_response.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/AppPermissionHandler.dart'; import 'package:mc_common_app/utils/enums.dart'; diff --git a/lib/views/settings/schedule/add_schedules_page.dart b/lib/views/settings/schedule/add_schedules_page.dart index 24a7fb7..67cc62e 100644 --- a/lib/views/settings/schedule/add_schedules_page.dart +++ b/lib/views/settings/schedule/add_schedules_page.dart @@ -1,14 +1,13 @@ + import 'package:car_provider_app/view_models/schedule_view_model.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/chips_picker_item.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/select_days_sheet.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/select_services_sheet.dart'; import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/schedule_model.dart'; +import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/date_helper.dart'; import 'package:mc_common_app/utils/utils.dart'; diff --git a/lib/views/settings/schedule/schedules_list_page.dart b/lib/views/settings/schedule/schedules_list_page.dart index 7e36258..f4f0b5e 100644 --- a/lib/views/settings/schedule/schedules_list_page.dart +++ b/lib/views/settings/schedule/schedules_list_page.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/schedule_model.dart'; +import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/date_helper.dart'; import 'package:mc_common_app/utils/navigator.dart'; @@ -28,8 +28,6 @@ class _SchedulesListPageState extends State { void initState() { // TODO: implement initState super.initState(); - print("fffffffffkk"); - print(widget.branchId); context.read().getSchedules(widget.branchId ?? ""); } diff --git a/lib/views/settings/services/create_item_page.dart b/lib/views/settings/services/create_item_page.dart index 053a216..dbdf1d2 100644 --- a/lib/views/settings/services/create_item_page.dart +++ b/lib/views/settings/services/create_item_page.dart @@ -3,10 +3,8 @@ import 'dart:convert'; import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/m_response.dart'; - -import 'package:mc_common_app/models/services/item_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/AppPermissionHandler.dart'; import 'package:mc_common_app/utils/date_helper.dart'; diff --git a/lib/views/settings/services/create_services_page3.dart b/lib/views/settings/services/create_services_page3.dart index 2a4a10e..865aa10 100644 --- a/lib/views/settings/services/create_services_page3.dart +++ b/lib/views/settings/services/create_services_page3.dart @@ -5,7 +5,7 @@ import 'package:car_provider_app/views/settings/services/services_list_page.dart import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/m_response.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/utils.dart'; diff --git a/lib/views/settings/services/duplication/matched_services_page.dart b/lib/views/settings/services/duplication/matched_services_page.dart index 01eaf37..0853dcf 100644 --- a/lib/views/settings/services/duplication/matched_services_page.dart +++ b/lib/views/settings/services/duplication/matched_services_page.dart @@ -8,8 +8,8 @@ import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:mc_common_app/models/m_response.dart'; -import 'package:mc_common_app/models/services/item_model.dart'; +import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/utils.dart'; @@ -46,9 +46,6 @@ class _MatchedServicesPageState extends State { @override Widget build(BuildContext context) { - print(widget.matchServicesArguments!.oldBranch); - print(widget.matchServicesArguments!.newBranch); - print(widget.matchServicesArguments!.categoryId); return Scaffold( appBar: const CustomAppBar( title: "Select Services", diff --git a/lib/views/settings/services/duplication/sheet/items_selection_sheet.dart b/lib/views/settings/services/duplication/sheet/items_selection_sheet.dart index 8a85a80..0b88dc3 100644 --- a/lib/views/settings/services/duplication/sheet/items_selection_sheet.dart +++ b/lib/views/settings/services/duplication/sheet/items_selection_sheet.dart @@ -1,14 +1,12 @@ -import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/services/item_model.dart'; +import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/txt_field.dart'; -import 'package:provider/provider.dart'; class ItemsSelectionSheet extends StatefulWidget { final List serviceItems; @@ -151,6 +149,5 @@ class _ItemsSelectionSheetState extends State { updateTempItem(int index, bool value) { tempItems![index].isUpdateOrSelected = value; setState(() {}); - ; } } diff --git a/lib/views/settings/services/items_list_page.dart b/lib/views/settings/services/items_list_page.dart index 27ac6ce..4291fb7 100644 --- a/lib/views/settings/services/items_list_page.dart +++ b/lib/views/settings/services/items_list_page.dart @@ -5,10 +5,8 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/model/provider_model.dart'; - -import 'package:mc_common_app/models/services/item_model.dart'; -import 'package:mc_common_app/models/services/service_model.dart'; +import 'package:mc_common_app/models/services_models/item_model.dart'; +import 'package:mc_common_app/models/services_models/service_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; diff --git a/lib/views/settings/services/services_list_page.dart b/lib/views/settings/services/services_list_page.dart index 6833445..0ee1c0d 100644 --- a/lib/views/settings/services/services_list_page.dart +++ b/lib/views/settings/services/services_list_page.dart @@ -5,7 +5,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/categroy.dart'; -import 'package:mc_common_app/models/services/service_model.dart'; +import 'package:mc_common_app/models/services_models/service_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; diff --git a/lib/views/subscriptions/my_subscritions_page.dart b/lib/views/subscriptions/my_subscritions_page.dart index df26870..7b2ac1f 100644 --- a/lib/views/subscriptions/my_subscritions_page.dart +++ b/lib/views/subscriptions/my_subscritions_page.dart @@ -6,8 +6,6 @@ import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; -import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; -import 'package:mc_common_app/widgets/tab/menu_tabs.dart'; import 'package:provider/provider.dart'; class MySubscriptionsPage extends StatelessWidget { diff --git a/lib/views/subscriptions/subscriptions_page.dart b/lib/views/subscriptions/subscriptions_page.dart index 38cd5a1..bbfa64b 100644 --- a/lib/views/subscriptions/subscriptions_page.dart +++ b/lib/views/subscriptions/subscriptions_page.dart @@ -1,8 +1,8 @@ import 'package:car_provider_app/view_models/subscriptions_view_model.dart'; import 'package:car_provider_app/views/subscriptions/widget/subscriptions_card.dart'; import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; +import 'package:mc_common_app/models/subscriptions_models/subscription_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; diff --git a/lib/views/subscriptions/widget/subscriptions_card.dart b/lib/views/subscriptions/widget/subscriptions_card.dart index ad47e99..bf4fb82 100644 --- a/lib/views/subscriptions/widget/subscriptions_card.dart +++ b/lib/views/subscriptions/widget/subscriptions_card.dart @@ -2,12 +2,12 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/subscription_model.dart'; +import 'package:mc_common_app/models/subscriptions_models/subscription_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/date_helper.dart'; -import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; + class SubscriptionsCard extends StatelessWidget { Subscription subscription; bool isSubscribed; diff --git a/pubspec.lock b/pubspec.lock index a7cd1bf..862cabb 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: args - sha256: c372bb384f273f0c2a8aaaa226dad84dc27c8519a691b888725dec59518ad53a + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" async: dependency: transitive description: @@ -29,10 +29,10 @@ packages: dependency: transitive description: name: badges - sha256: "6e7f3ec561ec08f47f912cfe349d4a1707afdc8dda271e17b046aa6d42c89e77" + sha256: a7b6bbd60dce418df0db3058b53f9d083c22cdb5132a052145dc267494df0b84 url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" boolean_selector: dependency: transitive description: @@ -45,26 +45,26 @@ packages: dependency: transitive description: name: cached_network_image - sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15 + sha256: f98972704692ba679db144261172a8e20feb145636c617af0eb4022132a6797f url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.3.0" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7 + sha256: "56aa42a7a01e3c9db8456d9f3f999931f1e05535b5a424271e9a38cabf066613" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "3.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0 + sha256: "759b9a9f8f6ccbb66c185df805fac107f05730b1dab9c64626d1008cca532257" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.0" carousel_slider: dependency: transitive description: @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" country_code_picker: dependency: transitive description: @@ -109,18 +109,26 @@ packages: dependency: transitive description: name: cross_file - sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9" + sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5" url: "https://pub.dev" source: hosted - version: "0.3.3+4" + version: "0.3.3+7" crypto: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" + csslib: + dependency: transitive + description: + name: csslib + sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + url: "https://pub.dev" + source: hosted + version: "1.0.0" cupertino_icons: dependency: "direct main" description: @@ -133,18 +141,18 @@ packages: dependency: transitive description: name: dropdown_button2 - sha256: "374f2390161bf782b4896f0b1b24cbb2b5daaa1cfb11047c3307461dcdf44e07" + sha256: b0fe8d49a030315e9eef6c7ac84ca964250155a6224d491c1365061bc974a9e1 url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.3.9" easy_localization: dependency: transitive description: name: easy_localization - sha256: "30ebf25448ffe169e0bd9bc4b5da94faa8398967a2ad2ca09f438be8b6953645" + sha256: de63e3b422adfc97f256cbb3f8cf12739b6a4993d390f3cadb3f51837afaefe5 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" easy_logger: dependency: transitive description: @@ -181,10 +189,10 @@ packages: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" file_picker: dependency: transitive description: @@ -193,35 +201,59 @@ packages: url: "https://pub.dev" source: hosted version: "4.6.1" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492" + url: "https://pub.dev" + source: hosted + version: "0.9.2+1" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6 + url: "https://pub.dev" + source: hosted + version: "0.9.3+3" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262" + url: "https://pub.dev" + source: hosted + version: "2.6.1" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0 + url: "https://pub.dev" + source: hosted + version: "0.9.3+1" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" - flutter_blurhash: - dependency: transitive - description: - name: flutter_blurhash - sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6" - url: "https://pub.dev" - source: hosted - version: "0.7.0" flutter_cache_manager: dependency: transitive description: name: flutter_cache_manager - sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3" + sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba" url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" flutter_inappwebview: dependency: transitive description: name: flutter_inappwebview - sha256: f73505c792cf083d5566e1a94002311be497d984b5607f25be36d685cf6361cf + sha256: d198297060d116b94048301ee6749cd2e7d03c1f2689783f52d210a6b7aba350 url: "https://pub.dev" source: hosted - version: "5.7.2+3" + version: "5.8.0" flutter_lints: dependency: "direct dev" description: @@ -239,10 +271,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "950e77c2bbe1692bc0874fc7fb491b96a4dc340457f4ea1641443d0a6c1ea360" + sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da url: "https://pub.dev" source: hosted - version: "2.0.15" + version: "2.0.17" flutter_svg: dependency: transitive description: @@ -265,90 +297,106 @@ packages: dependency: transitive description: name: fluttertoast - sha256: "474f7d506230897a3cd28c965ec21c5328ae5605fc9c400cd330e9e9d6ac175c" + sha256: dfdde255317af381bfc1c486ed968d5a43a2ded9c931e87cbecd88767d6a71c1 url: "https://pub.dev" source: hosted - version: "8.2.2" + version: "8.2.4" geolocator: dependency: transitive description: name: geolocator - sha256: "5c23f3613f50586c0bbb2b8f970240ae66b3bd992088cf60dd5ee2e6f7dde3a8" + sha256: e946395fc608842bb2f6c914807e9183f86f3cb787f6b8f832753e5251036f02 url: "https://pub.dev" source: hosted - version: "9.0.2" + version: "10.1.0" geolocator_android: dependency: transitive description: name: geolocator_android - sha256: "6cd3c622df085a79fd61f5c14fa024c3ba593aa6b1df2ee809ac59f45e6a9861" + sha256: "93906636752ea4d4e778afa981fdfe7409f545b3147046300df194330044d349" url: "https://pub.dev" source: hosted - version: "4.1.8" + version: "4.3.1" geolocator_apple: dependency: transitive description: name: geolocator_apple - sha256: "22b60ca3b8c0f58e6a9688ff855ee39ab813ca3f0c0609a48d282f6631266f2e" + sha256: ab90ae811c42ec2f6021e01eca71df00dee6ff1e69d2c2dafd4daeb0b793f73d url: "https://pub.dev" source: hosted - version: "2.2.5" + version: "2.3.2" geolocator_platform_interface: dependency: transitive description: name: geolocator_platform_interface - sha256: af4d69231452f9620718588f41acc4cb58312368716bfff2e92e770b46ce6386 + sha256: "6c8d494d6948757c56720b778af742f6973f31fca1f702a7539b8917e4a2468a" url: "https://pub.dev" source: hosted - version: "4.0.7" + version: "4.2.0" geolocator_web: dependency: transitive description: name: geolocator_web - sha256: f68a122da48fcfff68bbc9846bb0b74ef651afe84a1b1f6ec20939de4d6860e1 + sha256: "59083f7e0871b78299918d92bf930a14377f711d2d1156c558cd5ebae6c20d58" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.2.0" geolocator_windows: dependency: transitive description: name: geolocator_windows - sha256: f5911c88e23f48b598dd506c7c19eff0e001645bdc03bb6fecb9f4549208354d + sha256: a92fae29779d5c6dc60e8411302f5221ade464968fe80a36d330e80a71f087af + url: "https://pub.dev" + source: hosted + version: "0.2.2" + google_maps: + dependency: transitive + description: + name: google_maps + sha256: "555d5d736339b0478e821167ac521c810d7b51c3b2734e6802a9f046b64ea37a" url: "https://pub.dev" source: hosted - version: "0.1.1" + version: "6.3.0" google_maps_flutter: dependency: transitive description: name: google_maps_flutter - sha256: abefcb1e5e5c96bdd8084939dda555257af272c7972902ca46d5631092c1df68 + sha256: d4914cb38b3dcb62c39c085d968d434de0f8050f00f4d9f5ba4a7c7e004934cb url: "https://pub.dev" source: hosted - version: "2.2.8" + version: "2.5.0" google_maps_flutter_android: dependency: transitive description: name: google_maps_flutter_android - sha256: "9512c862df77c1f0fa5f445513dd3c57f5996f0a809dccb74e54b690ee4e3a0f" + sha256: "4279a338b79288fad5c8b03e5ae6ec30888bff210e0bab10b1f31f31e5a90558" url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.6.0" google_maps_flutter_ios: dependency: transitive description: name: google_maps_flutter_ios - sha256: a9462a433bf3ebe60aadcf4906d2d6341a270d69d3e0fcaa8eb2b64699fcfb4f + sha256: "6ad65362aeeeda44b7c2c807e36bf578ef4b1c163882e085bdb040bf2934b246" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.3" google_maps_flutter_platform_interface: dependency: transitive description: name: google_maps_flutter_platform_interface - sha256: "308f0af138fa78e8224d598d46ca182673874d0ef4d754b7157c073b5b4b8e0d" + sha256: a3e9e6896501e566d902c6c69f010834d410ef4b7b5c18b90c77e871c86b7907 url: "https://pub.dev" source: hosted - version: "2.2.7" + version: "2.4.1" + google_maps_flutter_web: + dependency: transitive + description: + name: google_maps_flutter_web + sha256: f893d1542c6562bc8299ef768fbbe92ade83c220ab3209b9477ec9f81ad585e4 + url: "https://pub.dev" + source: hosted + version: "0.5.4+2" hexcolor: dependency: transitive description: @@ -357,14 +405,22 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" + html: + dependency: transitive + description: + name: html + sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + url: "https://pub.dev" + source: hosted + version: "0.15.4" http: dependency: transitive description: name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" + sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2" url: "https://pub.dev" source: hosted - version: "0.13.5" + version: "0.13.6" http_parser: dependency: transitive description: @@ -377,42 +433,66 @@ packages: dependency: transitive description: name: image_picker - sha256: "9978d3510af4e6a902e545ce19229b926e6de6a1828d6134d3aab2e129a4d270" + sha256: b6951e25b795d053a6ba03af5f710069c99349de9341af95155d52665cb4607c url: "https://pub.dev" source: hosted - version: "0.8.7+5" + version: "0.8.9" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: c2f3c66400649bd132f721c88218945d6406f693092b2f741b79ae9cdb046e59 + sha256: d6a6e78821086b0b737009b09363018309bbc6de3fd88cc5c26bc2bb44a4957f url: "https://pub.dev" source: hosted - version: "0.8.6+16" + version: "0.8.8+2" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "98f50d6b9f294c8ba35e25cc0d13b04bfddd25dbc8d32fa9d566a6572f2c081c" + sha256: "869fe8a64771b7afbc99fc433a5f7be2fea4d1cb3d7c11a48b6b579eb9c797f0" url: "https://pub.dev" source: hosted - version: "2.1.12" + version: "2.2.0" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: d779210bda268a03b57e923fb1e410f32f5c5e708ad256348bcbf1f44f558fd0 + sha256: "76ec722aeea419d03aa915c2c96bf5b47214b053899088c9abb4086ceecf97a7" + url: "https://pub.dev" + source: hosted + version: "0.8.8+4" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62" url: "https://pub.dev" source: hosted - version: "0.8.7+4" + version: "0.2.1+1" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface - sha256: "1991219d9dbc42a99aff77e663af8ca51ced592cd6685c9485e3458302d3d4f8" + sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514 url: "https://pub.dev" source: hosted - version: "2.6.3" + version: "2.9.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" injector: dependency: transitive description: @@ -425,10 +505,10 @@ packages: dependency: transitive description: name: intl - sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 + sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" url: "https://pub.dev" source: hosted - version: "0.18.0" + version: "0.18.1" js: dependency: transitive description: @@ -437,6 +517,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" + js_wrapping: + dependency: transitive + description: + name: js_wrapping + sha256: e385980f7c76a8c1c9a560dfb623b890975841542471eade630b2871d243851c + url: "https://pub.dev" + source: hosted + version: "0.7.4" lints: dependency: transitive description: @@ -449,70 +537,78 @@ packages: dependency: transitive description: name: local_auth - sha256: "0cf238be2bfa51a6c9e7e9cfc11c05ea39f2a3a4d3e5bb255d0ebc917da24401" + sha256: "7e6c63082e399b61e4af71266b012e767a5d4525dd6e9ba41e174fd42d76e115" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.7" local_auth_android: dependency: transitive description: name: local_auth_android - sha256: c5e48c4a67fc0e5dd9b5725cc8766b67e2da9a54155c82c6e2ea4a0d1cf9ef93 + sha256: df4ccb3193525b8a60c78a5ca7bf188a47705bcf77bcc837a6b2cf6da64ae0e2 url: "https://pub.dev" source: hosted - version: "1.0.28" + version: "1.0.35" local_auth_ios: dependency: transitive description: name: local_auth_ios - sha256: edc2977c5145492f3451db9507a2f2f284ee4f408950b3e16670838726761940 + sha256: "8293faf72ef0ac4710f209edd03916c2d4c1eeab0483bdcf9b2e659c2f7d737b" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.1.5" local_auth_platform_interface: dependency: transitive description: name: local_auth_platform_interface - sha256: "9e160d59ef0743e35f1b50f4fb84dc64f55676b1b8071e319ef35e7f3bc13367" + sha256: fc5bd537970a324260fda506cfb61b33ad7426f37a8ea5c461cf612161ebba54 url: "https://pub.dev" source: hosted - version: "1.0.7" + version: "1.0.8" local_auth_windows: dependency: transitive description: name: local_auth_windows - sha256: "19323b75ab781d5362dbb15dcb7e0916d2431c7a6dbdda016ec9708689877f73" + sha256: "505ba3367ca781efb1c50d3132e44a2446bccc4163427bc203b9b4d8994d97ea" url: "https://pub.dev" source: hosted - version: "1.0.8" + version: "1.0.10" logger: dependency: transitive description: name: logger - sha256: db2ff852ed77090ba9f62d3611e4208a3d11dfa35991a81ae724c113fcb3e3f7 + sha256: "7ad7215c15420a102ec687bb320a7312afd449bac63bfb1c60d9787c27b9767f" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" matcher: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" mc_common_app: dependency: "direct main" description: - path: "C:/Users/mirza.shafique/AndroidStudioProjects/mc_common_app" + path: "/Volumes/Data/Projects/Flutter/car_common_app" relative: false source: path version: "1.0.0+1" @@ -524,6 +620,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + mime: + dependency: transitive + description: + name: mime + sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + url: "https://pub.dev" + source: hosted + version: "1.0.4" nested: dependency: transitive description: @@ -536,10 +640,10 @@ packages: dependency: transitive description: name: octo_image - sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143" + sha256: "45b40f99622f11901238e18d48f5f12ea36426d8eced9f4cbf58479c7aa2430d" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "2.0.0" path: dependency: transitive description: @@ -576,34 +680,34 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "2cec049d282c7f13c594b4a73976b0b4f2d7a1838a6dd5aaf7bd9719196bee86" + sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 url: "https://pub.dev" source: hosted - version: "2.0.27" + version: "2.2.1" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "1995d88ec2948dac43edf8fe58eb434d35d22a2940ecee1a9fefcd62beee6eb3" + sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.1" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57 + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 url: "https://pub.dev" source: hosted - version: "2.1.11" + version: "2.2.1" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec" + sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" url: "https://pub.dev" source: hosted - version: "2.0.6" + version: "2.1.1" path_provider_windows: dependency: transitive description: @@ -612,94 +716,78 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.7" - pedantic: - dependency: transitive - description: - name: pedantic - sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" - url: "https://pub.dev" - source: hosted - version: "1.11.1" permission_handler: dependency: transitive description: name: permission_handler - sha256: "33c6a1253d1f95fd06fa74b65b7ba907ae9811f9d5c1d3150e51417d04b8d6a8" + sha256: "284a66179cabdf942f838543e10413246f06424d960c92ba95c84439154fcac8" url: "https://pub.dev" source: hosted - version: "10.2.0" + version: "11.0.1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: d8cc6a62ded6d0f49c6eac337e080b066ee3bce4d405bd9439a61e1f1927bfe8 + sha256: f9fddd3b46109bd69ff3f9efa5006d2d309b7aec0f3c1c5637a60a2d5659e76e url: "https://pub.dev" source: hosted - version: "10.2.1" + version: "11.1.0" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: ee96ac32f5a8e6f80756e25b25b9f8e535816c8e6665a96b6d70681f8c4f7e85 + sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5" url: "https://pub.dev" source: hosted - version: "9.0.8" + version: "9.1.4" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - sha256: "68abbc472002b5e6dfce47fe9898c6b7d8328d58b5d2524f75e277c07a97eb84" + sha256: "6760eb5ef34589224771010805bea6054ad28453906936f843a8cc4d3a55c4a4" url: "https://pub.dev" source: hosted - version: "3.9.0" + version: "3.12.0" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - sha256: f67cab14b4328574938ecea2db3475dad7af7ead6afab6338772c5f88963e38b + sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098 url: "https://pub.dev" source: hosted - version: "0.1.2" + version: "0.1.3" petitparser: dependency: transitive description: name: petitparser - sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 url: "https://pub.dev" source: hosted - version: "5.1.0" + version: "5.4.0" platform: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.3" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - process: - dependency: transitive - description: - name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "2.1.7" provider: dependency: transitive description: name: provider - sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f + sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.1" rxdart: dependency: transitive description: @@ -708,62 +796,70 @@ packages: url: "https://pub.dev" source: hosted version: "0.27.7" + sanitize_html: + dependency: transitive + description: + name: sanitize_html + sha256: "12669c4a913688a26555323fb9cec373d8f9fbe091f2d01c40c723b33caa8989" + url: "https://pub.dev" + source: hosted + version: "2.1.0" shared_preferences: dependency: transitive description: name: shared_preferences - sha256: "16d3fb6b3692ad244a695c0183fca18cf81fd4b821664394a781de42386bf022" + sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.2" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "6478c6bbbecfe9aced34c483171e90d7c078f5883558b30ec3163cf18402c749" + sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.1" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb + sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.4" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa" + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d + sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.1" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5" + sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.1" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173" + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.2" shimmer: dependency: transitive description: @@ -772,6 +868,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + signalr_core: + dependency: transitive + description: + name: signalr_core + sha256: dca676372a00c051511591ed0e24521ff7aa4e9320a7fa778a1007f7f522c8c0 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + simple_gesture_detector: + dependency: transitive + description: + name: simple_gesture_detector + sha256: "86d08f85f1f58583b7b4b941d989f48ea6ce08c1724a1d10954a277c2ec36592" + url: "https://pub.dev" + source: hosted + version: "0.2.0" sizer: dependency: transitive description: @@ -789,26 +901,34 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" sqflite: dependency: transitive description: name: sqflite - sha256: b4d6710e1200e96845747e37338ea8a819a12b51689a3bcf31eff0003b37a0b9 + sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a" url: "https://pub.dev" source: hosted - version: "2.2.8+4" + version: "2.3.0" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: e77abf6ff961d69dfef41daccbb66b51e9983cdd5cb35bf30733598057401555 + sha256: bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6 + url: "https://pub.dev" + source: hosted + version: "2.5.0+2" + sse_client: + dependency: transitive + description: + name: sse_client + sha256: "71bd826430b41ab20a69d85bf2dfe9f11cfe222938e681ada1aea71fc8adf348" url: "https://pub.dev" source: hosted - version: "2.4.5" + version: "0.1.0" stack_trace: dependency: transitive description: @@ -849,6 +969,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.0" + table_calendar: + dependency: transitive + description: + name: table_calendar + sha256: "1e3521a3e6d3fc7f645a58b135ab663d458ab12504f1ea7f9b4b81d47086c478" + url: "https://pub.dev" + source: hosted + version: "3.0.9" term_glyph: dependency: transitive description: @@ -861,10 +989,18 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + tuple: + dependency: transitive + description: + name: tuple + sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151 url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "2.0.2" typed_data: dependency: transitive description: @@ -877,74 +1013,74 @@ packages: dependency: transitive description: name: universal_io - sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d" + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.2" url_launcher: dependency: transitive description: name: url_launcher - sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3 + sha256: b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba url: "https://pub.dev" source: hosted - version: "6.1.11" + version: "6.2.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: eed4e6a1164aa9794409325c3b707ff424d4d1c2a785e7db67f8bbda00e36e51 + sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" url: "https://pub.dev" source: hosted - version: "6.0.35" + version: "6.2.0" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2" + sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "6.2.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5" + sha256: "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.1.0" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "91ee3e75ea9dadf38036200c5d3743518f4a5eb77a8d13fda1ee5764373f185e" + sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.1.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "6c9ca697a5ae218ce56cece69d46128169a58aa8653c1b01d26fcd4aad8c4370" + sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.2.0" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "6bb1e5d7fe53daf02a8fee85352432a40b1f868a81880e99ec7440113d5cfcab" + sha256: "7fd2f55fe86cea2897b963e864dc01a7eb0719ecc65fcef4c1cc3d686d718bb2" url: "https://pub.dev" source: hosted - version: "2.0.17" + version: "2.2.0" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "254708f17f7c20a9c8c471f67d86d76d4a3f9c1591aad1e15292008aceb82771" + sha256: "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc" url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.1.0" uuid: dependency: transitive description: @@ -961,6 +1097,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + url: "https://pub.dev" + source: hosted + version: "2.4.0" win32: dependency: transitive description: @@ -973,18 +1125,18 @@ packages: dependency: transitive description: name: xdg_directories - sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1 + sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.3" xml: dependency: transitive description: name: xml - sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb + sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.3.0" sdks: - dart: ">=3.0.0-0 <4.0.0" - flutter: ">=3.3.0" + dart: ">=3.1.0 <4.0.0" + flutter: ">=3.13.0" diff --git a/pubspec.yaml b/pubspec.yaml index 791cfc2..0d87ac1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.17.0 <3.0.0" # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -39,7 +39,7 @@ dependencies: # path: C:/Users/mirza.shafique/AndroidStudioProjects/mc_common_app mc_common_app: - path: C:/Users/mirza.shafique/AndroidStudioProjects/mc_common_app + path: /Volumes/Data/Projects/Flutter/car_common_app From 8235f0b8af8d25534d2b955c51e3f4c7a4b4b408 Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Thu, 7 Dec 2023 11:47:02 +0300 Subject: [PATCH 2/5] refined models --- lib/main.dart | 2 +- lib/repositories/branch_repo.dart | 6 +----- lib/repositories/items_repo.dart | 2 +- lib/repositories/schedule_repo.dart | 2 +- lib/view_models/items_view_model.dart | 2 +- lib/view_models/schedule_view_model.dart | 2 +- lib/view_models/service_view_model.dart | 2 +- lib/views/settings/branch/branch_list_page.dart | 2 +- lib/views/settings/branch/dealer/dealer_user_page.dart | 2 +- .../branch/dealer/widget/assign_dealer_user_sheet.dart | 2 +- lib/views/settings/branch/define_branch_page.dart | 2 +- lib/views/settings/define_license_page.dart | 2 +- lib/views/settings/schedule/add_schedules_page.dart | 2 +- lib/views/settings/services/create_item_page.dart | 2 +- lib/views/settings/services/create_services_page3.dart | 2 +- .../services/duplication/matched_services_page.dart | 2 +- 16 files changed, 16 insertions(+), 20 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 2ede99d..cb3db33 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -13,7 +13,7 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/routes.dart'; -import 'package:mc_common_app/models/general/post_params_model.dart'; +import 'package:mc_common_app/models/general_models/post_params_model.dart'; import 'package:mc_common_app/repositories/ads_repo.dart'; import 'package:mc_common_app/repositories/chat_repo.dart'; import 'package:mc_common_app/repositories/common_repo.dart'; diff --git a/lib/repositories/branch_repo.dart b/lib/repositories/branch_repo.dart index 93400b7..c909e9e 100644 --- a/lib/repositories/branch_repo.dart +++ b/lib/repositories/branch_repo.dart @@ -1,14 +1,10 @@ import 'dart:async'; -import 'dart:convert'; -import 'dart:io'; -import 'package:http/http.dart' as http; - import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/provider_model.dart'; import 'package:flutter/cupertino.dart'; diff --git a/lib/repositories/items_repo.dart b/lib/repositories/items_repo.dart index 421540e..6ebf8cb 100644 --- a/lib/repositories/items_repo.dart +++ b/lib/repositories/items_repo.dart @@ -4,7 +4,7 @@ import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/dependencies.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/services_models/item_model.dart'; abstract class ItemsRepo { diff --git a/lib/repositories/schedule_repo.dart b/lib/repositories/schedule_repo.dart index 06ab128..6730b8d 100644 --- a/lib/repositories/schedule_repo.dart +++ b/lib/repositories/schedule_repo.dart @@ -1,5 +1,5 @@ import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; import 'package:mc_common_app/api/api_client.dart'; import 'package:mc_common_app/classes/app_state.dart'; diff --git a/lib/view_models/items_view_model.dart b/lib/view_models/items_view_model.dart index 6ed24f1..0adfac7 100644 --- a/lib/view_models/items_view_model.dart +++ b/lib/view_models/items_view_model.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:car_provider_app/repositories/items_repo.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/services/common_services.dart'; import 'package:mc_common_app/utils/enums.dart'; diff --git a/lib/view_models/schedule_view_model.dart b/lib/view_models/schedule_view_model.dart index 62eaa4d..de1e883 100644 --- a/lib/view_models/schedule_view_model.dart +++ b/lib/view_models/schedule_view_model.dart @@ -1,5 +1,5 @@ import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; import 'package:car_provider_app/repositories/schedule_repo.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/chips_picker_item.dart'; diff --git a/lib/view_models/service_view_model.dart b/lib/view_models/service_view_model.dart index 4be2b49..e9252d3 100644 --- a/lib/view_models/service_view_model.dart +++ b/lib/view_models/service_view_model.dart @@ -238,7 +238,7 @@ import 'dart:io'; import 'package:car_provider_app/repositories/branch_repo.dart'; import 'package:file_picker/file_picker.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/provider_model.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/categroy.dart'; diff --git a/lib/views/settings/branch/branch_list_page.dart b/lib/views/settings/branch/branch_list_page.dart index 1e3346a..ac16203 100644 --- a/lib/views/settings/branch/branch_list_page.dart +++ b/lib/views/settings/branch/branch_list_page.dart @@ -11,7 +11,7 @@ import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; diff --git a/lib/views/settings/branch/dealer/dealer_user_page.dart b/lib/views/settings/branch/dealer/dealer_user_page.dart index f5abaff..cef765d 100644 --- a/lib/views/settings/branch/dealer/dealer_user_page.dart +++ b/lib/views/settings/branch/dealer/dealer_user_page.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/utils.dart'; diff --git a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart index cad1028..b477352 100644 --- a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart +++ b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; diff --git a/lib/views/settings/branch/define_branch_page.dart b/lib/views/settings/branch/define_branch_page.dart index 181e30f..78dd33b 100644 --- a/lib/views/settings/branch/define_branch_page.dart +++ b/lib/views/settings/branch/define_branch_page.dart @@ -6,7 +6,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:car_provider_app/views/location/pick_location_page.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; diff --git a/lib/views/settings/define_license_page.dart b/lib/views/settings/define_license_page.dart index 77a12e2..7c4bec7 100644 --- a/lib/views/settings/define_license_page.dart +++ b/lib/views/settings/define_license_page.dart @@ -6,7 +6,7 @@ import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/AppPermissionHandler.dart'; import 'package:mc_common_app/utils/enums.dart'; diff --git a/lib/views/settings/schedule/add_schedules_page.dart b/lib/views/settings/schedule/add_schedules_page.dart index 67cc62e..5c600b3 100644 --- a/lib/views/settings/schedule/add_schedules_page.dart +++ b/lib/views/settings/schedule/add_schedules_page.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/date_helper.dart'; import 'package:mc_common_app/utils/utils.dart'; diff --git a/lib/views/settings/services/create_item_page.dart b/lib/views/settings/services/create_item_page.dart index dbdf1d2..2a50418 100644 --- a/lib/views/settings/services/create_item_page.dart +++ b/lib/views/settings/services/create_item_page.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/AppPermissionHandler.dart'; diff --git a/lib/views/settings/services/create_services_page3.dart b/lib/views/settings/services/create_services_page3.dart index 865aa10..c7554d6 100644 --- a/lib/views/settings/services/create_services_page3.dart +++ b/lib/views/settings/services/create_services_page3.dart @@ -5,7 +5,7 @@ import 'package:car_provider_app/views/settings/services/services_list_page.dart import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/utils.dart'; diff --git a/lib/views/settings/services/duplication/matched_services_page.dart b/lib/views/settings/services/duplication/matched_services_page.dart index 0853dcf..62f106b 100644 --- a/lib/views/settings/services/duplication/matched_services_page.dart +++ b/lib/views/settings/services/duplication/matched_services_page.dart @@ -8,7 +8,7 @@ import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:mc_common_app/models/general/m_response.dart'; +import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; From b00b93a7ab934333583f0a9cf76e75ce37de5546 Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Thu, 7 Dec 2023 17:51:37 +0300 Subject: [PATCH 3/5] chat module --- lib/views/dashboard/fragments/home_fragment.dart | 2 ++ lib/views/requests/request_detail_page.dart | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 82f4dda..9ebbe0f 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -9,6 +9,7 @@ import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/chat_view_model.dart'; +import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:mc_common_app/views/advertisement/ads_list.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; @@ -38,6 +39,7 @@ class HomeFragment extends StatelessWidget { children: [ "${AppState().currentAppType}".toText(color: MyColors.darkTextColor).onPress(() async { print("myId: ${AppState().getUser.data!.userInfo!.userId}"); + // final chatVM = context.read(); // await chatVM.buildHubConnection(); }), diff --git a/lib/views/requests/request_detail_page.dart b/lib/views/requests/request_detail_page.dart index 3a8b6a5..4a1d22a 100644 --- a/lib/views/requests/request_detail_page.dart +++ b/lib/views/requests/request_detail_page.dart @@ -59,7 +59,7 @@ class RequestDetailPage extends StatelessWidget { onPressed: () { requestsVM.onSendOfferPressed( context: context, - receiverId: "c1ab141e-9014-4fec-44d7-08db290c1cca", //Todo: This should be included in the request model + receiverId: requestDetail.customerID, message: requestsVM.offerDescription, requestId: requestDetail.id, offerPrice: requestsVM.offerPrice, From 37ec048a2cea46f272252da8a93af1e258f1617c Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Thu, 28 Dec 2023 17:12:44 +0300 Subject: [PATCH 4/5] chat moDULE ANd other testing before demo --- lib/config/provider_routes.dart | 13 +- lib/main.dart | 1 + lib/views/dashboard/dashboard_page.dart | 2 +- .../fragments/my_requests_fragment.dart | 5 +- .../widget/request_list_card_widget.dart | 104 -------------- lib/views/requests/request_detail_page.dart | 130 +++++++++++++++--- pubspec.lock | 8 ++ 7 files changed, 134 insertions(+), 129 deletions(-) delete mode 100644 lib/views/dashboard/widget/request_list_card_widget.dart diff --git a/lib/config/provider_routes.dart b/lib/config/provider_routes.dart index b01bc76..ea02133 100644 --- a/lib/config/provider_routes.dart +++ b/lib/config/provider_routes.dart @@ -1,5 +1,6 @@ import 'package:car_provider_app/views/appoinments/appoinment_detail_list_page.dart'; import 'package:car_provider_app/views/appoinments/update_appointment_page.dart'; +import 'package:car_provider_app/views/dashboard/dashboard_page.dart'; import 'package:car_provider_app/views/requests/request_detail_page.dart'; import 'package:car_provider_app/views/requests/send_offer_page.dart'; import 'package:car_provider_app/views/settings/branch/branch_detail_page.dart'; @@ -21,11 +22,9 @@ import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; -import 'package:mc_common_app/models/requests_models/request_model.dart'; import 'package:mc_common_app/views/advertisement/ads_detail_view.dart'; import 'package:mc_common_app/views/advertisement/create_ad_view.dart'; - -import '../views/dashboard/dashboard_page.dart'; +import 'package:mc_common_app/views/chat/chat_view.dart'; class ProviderAppRoutes { //settings @@ -73,7 +72,9 @@ class ProviderAppRoutes { updateAppointmentPage: (context) => const UpdateAppointmentPage(), //Requests - AppRoutes.requestsDetailPage: (context) => RequestDetailPage(requestDetail: ModalRoute.of(context)!.settings.arguments as RequestModel), + AppRoutes.requestsDetailPage: (context) => RequestDetailPage( + requestDetailPageArguments: ModalRoute.of(context)!.settings.arguments as RequestDetailPageArguments, + ), AppRoutes.sendOfferPage: (context) => const SendOfferPage(), //Subscriptions @@ -95,5 +96,9 @@ class ProviderAppRoutes { //Branch Duplication matchServices: (context) => MatchedServicesPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as MatchServicesArguments)), + + AppRoutes.chatView: (context) => ChatView( + chatViewArguments: ModalRoute.of(context)!.settings.arguments as ChatViewArguments, + ), }; } diff --git a/lib/main.dart b/lib/main.dart index cb3db33..ca3228f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -98,6 +98,7 @@ Future main() async { ChangeNotifierProvider( create: (_) => ChatVM( chatRepo: injector.get(), + requestRepo: injector.get(), ), ), ], diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index 8869ae1..c9bd724 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -56,7 +56,7 @@ class _DashboardPageState extends State { await requestsVM.getRequests(appType: AppType.provider); } - await chatVM.buildHubConnection(); + await chatVM.buildHubConnection(context); } @override diff --git a/lib/views/dashboard/fragments/my_requests_fragment.dart b/lib/views/dashboard/fragments/my_requests_fragment.dart index 7b9faf5..04e9cf3 100644 --- a/lib/views/dashboard/fragments/my_requests_fragment.dart +++ b/lib/views/dashboard/fragments/my_requests_fragment.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:flutter/material.dart'; @@ -25,7 +27,6 @@ class MyRequestsFragment extends StatelessWidget { width: double.infinity, height: double.infinity, child: Consumer(builder: (BuildContext context, RequestsVM requestsVM, Widget? child) { - return Column( children: [ 16.height, @@ -50,7 +51,7 @@ class MyRequestsFragment extends StatelessWidget { ) : ListView.separated( itemBuilder: (context, index) { - return RequestItem(request: requestsVM.myFilteredRequests[index], appType: AppType.provider,); + return RequestItem(request: requestsVM.myFilteredRequests[index], appType: AppType.provider, requestIndex: index); }, separatorBuilder: (context, index) { return 16.height; diff --git a/lib/views/dashboard/widget/request_list_card_widget.dart b/lib/views/dashboard/widget/request_list_card_widget.dart deleted file mode 100644 index 3a2183e..0000000 --- a/lib/views/dashboard/widget/request_list_card_widget.dart +++ /dev/null @@ -1,104 +0,0 @@ -import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/consts.dart'; -import 'package:mc_common_app/config/routes.dart'; -import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/theme/colors.dart'; -import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; - -class RequestListCardWidget extends StatelessWidget { - final int count; - - const RequestListCardWidget({Key? key, required this.count}) : super(key: key); - - @override - Widget build(BuildContext context) { - return ListView.builder( - itemCount: count, - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), - itemBuilder: (BuildContext context, int index) { - return Padding( - padding: const EdgeInsets.only(bottom: 15), - child: buildRequestContainer(context), - ); - }); - } - - Widget buildRequestContainer(BuildContext context) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - "Toyota Crolla".toText(fontSize: 16, isBold: true), - showItem("Model:", "2019"), - ], - ), - ), - Column( - crossAxisAlignment: CrossAxisAlignment.end, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - "Riyadh".toText( - color: MyColors.lightTextColor, - ), - "9 Hours Ago".toText(color: MyColors.lightTextColor), - ], - ), - ], - ), - showItem("Customer Name", "Abdullah"), - showItem("Description", "Looking for the car as soon as possible"), - showItem("Price Range:", ""), - Row( - children: [ - Expanded( - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - "30,000".toText(fontSize: 16, isBold: true), - 2.width, - "SAR:".toText( - color: MyColors.lightTextColor, - ), - ], - ), - ), - const Icon(Icons.arrow_forward) - ], - ), - ], - ).toWhiteContainer( - width: double.infinity, - allPading: 12, - onTap: () { - navigateWithName(context, AppRoutes.requestsDetailPage); - }, - ); - } - - Widget showItem(String title, String value) { - return Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - if (title.isNotEmpty) - title.toText( - color: MyColors.lightTextColor, - ), - if (title.isNotEmpty) 2.width, - if (value.isNotEmpty) Expanded(child: value.toText(isBold: true)), - ], - ); - } -} diff --git a/lib/views/requests/request_detail_page.dart b/lib/views/requests/request_detail_page.dart index 4a1d22a..605d514 100644 --- a/lib/views/requests/request_detail_page.dart +++ b/lib/views/requests/request_detail_page.dart @@ -1,9 +1,14 @@ import 'package:flutter/material.dart'; +import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/requests_models/request_model.dart'; import 'package:mc_common_app/theme/colors.dart'; +import 'package:mc_common_app/utils/enums.dart'; +import 'package:mc_common_app/utils/navigator.dart'; +import 'package:mc_common_app/utils/utils.dart'; +import 'package:mc_common_app/view_models/chat_view_model.dart'; import 'package:mc_common_app/view_models/requests_view_model.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; @@ -13,11 +18,12 @@ import 'package:mc_common_app/widgets/txt_field.dart'; import 'package:provider/provider.dart'; class RequestDetailPage extends StatelessWidget { - final RequestModel requestDetail; + final RequestDetailPageArguments requestDetailPageArguments; - const RequestDetailPage({Key? key, required this.requestDetail}) : super(key: key); + const RequestDetailPage({Key? key, required this.requestDetailPageArguments}) : super(key: key); Future buildSendOfferBottomSheet(BuildContext context) { + final requestDetail = requestDetailPageArguments.requestModel; return showModalBottomSheet( context: context, isScrollControlled: true, @@ -63,6 +69,9 @@ class RequestDetailPage extends StatelessWidget { message: requestsVM.offerDescription, requestId: requestDetail.id, offerPrice: requestsVM.offerPrice, + requestModel: requestDetail, + requestIndex: requestDetailPageArguments.requestIndex, + isFromChatScreen: false, ); }, maxWidth: double.infinity, @@ -76,6 +85,41 @@ class RequestDetailPage extends StatelessWidget { ); } + Widget buildBottomButton({required RequestStatus requestStatus, required String statusText, required BuildContext context, required Function() onViewChatTapped}) { + switch (requestStatus) { + case RequestStatus.submitted: + case RequestStatus.inProgress: + case RequestStatus.paid: + case RequestStatus.shipping: + return ShowFillButton( + maxWidth: double.infinity, + margin: const EdgeInsets.all(15), + maxHeight: 55, + title: "View Chat", + isBold: false, + onPressed: onViewChatTapped, + ); + case RequestStatus.completed: + case RequestStatus.cancelled: + case RequestStatus.expired: + case RequestStatus.pending: + return buildDisabledButton(statusText); + } + } + + Widget buildDisabledButton(String text) { + return ShowFillButton( + backgroundColor: MyColors.grey98Color.withOpacity(0.3), + txtColor: MyColors.lightTextColor, + maxWidth: double.infinity, + margin: const EdgeInsets.all(15), + maxHeight: 55, + title: text, + isBold: false, + onPressed: () {}, + ); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -103,15 +147,52 @@ class RequestDetailPage extends StatelessWidget { left: 21, ), ), - ShowFillButton( - title: "Send Offer", - maxWidth: double.infinity, - margin: const EdgeInsets.all(21), - onPressed: () { - buildSendOfferBottomSheet(context); - // navigateWithName(context, AppRoutes.sendOfferPage); - }, - ), + if (!requestDetailPageArguments.requestModel.isChatted) ...[ + ShowFillButton( + maxWidth: double.infinity, + margin: const EdgeInsets.all(15), + maxHeight: 55, + title: "Send Offer", + isBold: false, + fontSize: 18, + onPressed: () => buildSendOfferBottomSheet(context), + ), + ] else ...[ + buildBottomButton( + requestStatus: requestDetailPageArguments.requestModel.requestStatus, + statusText: "Offer ${requestDetailPageArguments.requestModel.requestStatusName}", + context: context, + onViewChatTapped: () async { + ChatViewArguments chatViewArguments = ChatViewArguments( + chatTypeEnum: ChatTypeEnum.requestOffer, + receiverId: requestDetailPageArguments.requestModel.customerID, + senderId: AppState().getUser.data!.userInfo!.userId.toString(), + requestId: requestDetailPageArguments.requestModel.id, + providerIndex: -1, + // This will be only sent in case of customer + requestModel: requestDetailPageArguments.requestModel, + requestIndex: requestDetailPageArguments.requestIndex, // This will be only sent in case of provider + ); + + final chatVM = context.read(); + await chatVM + .getUsersChatMessagesForProvider( + customerId: requestDetailPageArguments.requestModel.customerId, + context: context, + requestOfferId: 0, + requestId: requestDetailPageArguments.requestModel.id, + customerRequestIndex: requestDetailPageArguments.requestIndex, + ) + .whenComplete( + () => navigateWithName( + context, + AppRoutes.chatView, + arguments: chatViewArguments, + ), + ); + }, + ), + ], ], ), ), @@ -119,6 +200,7 @@ class RequestDetailPage extends StatelessWidget { } Widget buildRequestContainer(BuildContext context) { + final requestDetail = requestDetailPageArguments.requestModel; return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -149,20 +231,32 @@ class RequestDetailPage extends StatelessWidget { ), ], ), - showItem("Customer Name", "${requestDetail.customer}"), + showItem("Customer Name", requestDetail.customerName), showItem("Description", requestDetail.description), showItem("Price Range:", ""), Row( children: [ Expanded( child: Row( - mainAxisAlignment: MainAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.end, children: [ - "${requestDetail.price.toInt()}".toText(fontSize: 16, isBold: true), - 2.width, - "SAR:".toText( - color: MyColors.lightTextColor, + Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + "${requestDetail.price.toInt()}".toText(fontSize: 25, isBold: true), + 2.width, + "SAR".toText(color: MyColors.lightTextColor, fontSize: 16, height: 2.3), + ], + ), + Row( + children: [ + Utils.statusContainerChip( + text: "Offer ${requestDetail.requestStatusName}", + chipColor: MyColors.grey98Color.withOpacity(0.3), + textColor: MyColors.lightTextColor, + ), + ], ), ], ), diff --git a/pubspec.lock b/pubspec.lock index 862cabb..37cad2a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -716,6 +716,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.7" + percent_indicator: + dependency: transitive + description: + name: percent_indicator + sha256: c37099ad833a883c9d71782321cb65c3a848c21b6939b6185f0ff6640d05814c + url: "https://pub.dev" + source: hosted + version: "4.2.3" permission_handler: dependency: transitive description: From 1af42fdcf73e02d972bdff76b227b5d18b385497 Mon Sep 17 00:00:00 2001 From: "Mirza.Shafique@cloudsolutions.com.sa" <5093@Shf> Date: Sun, 31 Dec 2023 15:07:57 +0300 Subject: [PATCH 5/5] path fix --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 0d87ac1..8f6fcc8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,7 +39,7 @@ dependencies: # path: C:/Users/mirza.shafique/AndroidStudioProjects/mc_common_app mc_common_app: - path: /Volumes/Data/Projects/Flutter/car_common_app + path: /Users/mirzashafiq/AndroidStudioProjects/car_common_app