From 455a5a55714145c6b82752dd8df8a9bad751a990 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Mon, 8 Dec 2025 16:10:34 +0330 Subject: [PATCH] refactor: remove unused local and remote data sources, models, and tests for chicken and poultry features to streamline codebase --- .../utils/local_storage_utils.dart | 4 +- lib/presentation/pages/modules/logic.dart | 2 +- .../remote/chicken/chicken_remote.dart | 180 ----- .../remote/chicken/chicken_remote_imp.dart | 548 --------------- .../poultry_science_remote.dart | 94 --- packages/chicken/lib/data/di/chicken_di.dart | 108 +-- .../chicken/chicken_repository.dart | 200 ------ .../chicken/chicken_repository_imp.dart | 433 ------------ .../poultry_science_repository_imp.dart | 145 ---- .../datasources}/local/chicken_local.dart | 2 +- .../datasources}/local/chicken_local_imp.dart | 2 +- .../datasources}/remote/auth/auth_remote.dart | 6 +- .../remote/auth/auth_remote_imp.dart | 4 +- .../remote/chicken_remote_data_source.dart | 3 - .../remote/common/common_remote.dart | 75 ++ .../remote/common/common_remote_imp.dart | 238 +++++++ .../features/common/data/di/common_di.dart | 66 ++ .../model}/local/widely_used_local_model.dart | 0 .../local/widely_used_local_model.g.dart | 0 .../change_password_request_model.dart | 0 ...change_password_request_model.freezed.dart | 0 .../change_password_request_model.g.dart | 0 .../login_request/login_request_model.dart | 0 .../login_request_model.freezed.dart | 0 .../login_request/login_request_model.g.dart | 0 .../submit_kill_house_free_bar.dart | 0 .../submit_kill_house_free_bar.freezed.dart | 0 .../submit_kill_house_free_bar.g.dart | 0 .../response/auth/auth_response_model.dart | 0 .../auth/auth_response_model.freezed.dart | 0 .../response/auth/auth_response_model.g.dart | 0 .../bar_information/bar_information.dart | 0 .../bar_information.freezed.dart | 0 .../bar_information/bar_information.g.dart | 0 .../broadcast_price/broadcast_price.dart | 0 .../broadcast_price.freezed.dart | 0 .../broadcast_price/broadcast_price.g.dart | 0 .../captcha/captcha_response_model.dart | 0 .../captcha_response_model.freezed.dart | 0 .../captcha/captcha_response_model.g.dart | 0 .../model}/response/guild/guild_model.dart | 0 .../response/guild/guild_model.freezed.dart | 0 .../model}/response/guild/guild_model.g.dart | 0 .../response/guild_profile/guild_profile.dart | 0 .../guild_profile/guild_profile.freezed.dart | 0 .../guild_profile/guild_profile.g.dart | 0 .../response/inventory/inventory_model.dart | 0 .../inventory/inventory_model.freezed.dart | 0 .../response/inventory/inventory_model.g.dart | 0 .../iran_province_city_model.dart | 0 .../iran_province_city_model.freezed.dart | 0 .../iran_province_city_model.g.dart | 0 .../kill_house_distribution_info.dart | 0 .../kill_house_distribution_info.freezed.dart | 0 .../kill_house_distribution_info.g.dart | 0 .../kill_house_free_bar.dart | 0 .../kill_house_free_bar.freezed.dart | 0 .../kill_house_free_bar.g.dart | 0 .../roles_products/roles_products.dart | 0 .../roles_products.freezed.dart | 0 .../roles_products/roles_products.g.dart | 0 .../response/user_info/user_info_model.dart | 0 .../user_info/user_info_model.freezed.dart | 0 .../response/user_info/user_info_model.g.dart | 0 .../response/user_profile/user_profile.dart | 0 .../user_profile/user_profile.freezed.dart | 0 .../response/user_profile/user_profile.g.dart | 0 .../user_profile_model.dart | 0 .../user_profile_model.freezed.dart | 0 .../user_profile_model.g.dart | 0 .../repositories/auth/auth_repository.dart | 4 +- .../auth/auth_repository_imp.dart | 6 +- .../common/common_repository.dart | 85 +++ .../common/common_repository_imp.dart | 172 +++++ .../common/presentation/page/auth/logic.dart | 6 +- .../presentation/page/profile/logic.dart | 19 +- .../presentation/page/profile/view.dart | 2 +- .../local/poultry_farm_local_data_source.dart | 2 + .../poultry_farm_remote_data_source.dart | 2 + .../data/models/.gitkeep | 3 + .../repositories/poultry_farm_repository.dart | 2 + .../poultry_farm_inspection/domain/.gitkeep | 3 + .../presentation/.gitkeep | 3 + .../poultry_science_remote_data_source.dart | 91 ++- ...ltry_science_remote_data_source_impl.dart} | 53 +- .../data/di/poultry_science_di.dart | 38 ++ .../kill_registration/kill_registration.dart | 0 .../kill_registration.freezed.dart | 0 .../kill_registration.g.dart | 0 .../response/all_poultry/all_poultry.dart | 0 .../all_poultry/all_poultry.freezed.dart | 0 .../response/all_poultry/all_poultry.g.dart | 0 .../approved_price/approved_price.dart | 0 .../approved_price.freezed.dart | 0 .../approved_price/approved_price.g.dart | 0 .../response/hatching/hatching_models.dart | 0 .../hatching/hatching_models.freezed.dart | 0 .../response/hatching/hatching_models.g.dart | 0 .../hatching_report/hatching_report.dart | 0 .../hatching_report.freezed.dart | 0 .../hatching_report/hatching_report.g.dart | 0 .../home_poultry_science_model.dart | 0 .../home_poultry_science_model.freezed.dart | 0 .../home_poultry_science_model.g.dart | 0 .../kill_house_poultry.dart | 0 .../kill_house_poultry.freezed.dart | 0 .../kill_house_poultry.g.dart | 0 .../kill_request_poultry.dart | 0 .../kill_request_poultry.freezed.dart | 0 .../kill_request_poultry.g.dart | 0 .../poultry_export/poultry_export.dart | 0 .../poultry_export.freezed.dart | 0 .../poultry_export/poultry_export.g.dart | 0 .../response/poultry_farm/poultry_farm.dart | 0 .../poultry_farm/poultry_farm.freezed.dart | 0 .../response/poultry_farm/poultry_farm.g.dart | 0 .../poultry_hatching/poultry_hatching.dart | 0 .../poultry_hatching.freezed.dart | 0 .../poultry_hatching/poultry_hatching.g.dart | 0 .../response/poultry_order/poultry_order.dart | 0 .../poultry_order/poultry_order.freezed.dart | 0 .../poultry_order/poultry_order.g.dart | 0 .../sell_for_freezing/sell_for_freezing.dart | 0 .../sell_for_freezing.freezed.dart | 0 .../sell_for_freezing.g.dart | 0 .../poultry_science_repository.dart | 43 +- .../poultry_science_repository_impl.dart | 183 +++++ .../poultry_science/poultry_science.dart | 1 + .../pages/active_hatching/logic.dart | 12 +- .../pages/active_hatching/view.dart | 2 +- .../presentation/pages/farm/logic.dart | 2 +- .../presentation/pages/farm/view.dart | 2 +- .../presentation/pages/genocide/logic.dart | 2 +- .../presentation/pages/genocide/view.dart | 2 +- .../presentation/pages/home/logic.dart | 2 +- .../presentation/pages/inspection/logic.dart | 4 +- .../presentation/pages/inspection/view.dart | 4 +- .../pages/killing_registration/logic.dart | 16 +- .../pages/killing_registration/view.dart | 8 +- .../presentation/pages/root/logic.dart | 3 +- .../remote/steward_remote_data_source.dart | 138 ++++ .../steward_remote_data_source_impl.dart | 358 ++++++++++ .../features/steward/data/di/steward_di.dart | 36 + .../conform_allocation.dart | 0 .../conform_allocation.freezed.dart | 0 .../conform_allocation.g.dart | 0 .../create_steward_free_bar.dart | 0 .../create_steward_free_bar.freezed.dart | 0 .../create_steward_free_bar.g.dart | 0 .../steward_allocation_request.dart | 0 .../steward_allocation_request.freezed.dart | 0 .../steward_allocation_request.g.dart | 0 .../steward_free_sale_bar_request.dart | 0 ...steward_free_sale_bar_request.freezed.dart | 0 .../steward_free_sale_bar_request.g.dart | 0 .../submit_steward_allocation.dart | 0 .../submit_steward_allocation.freezed.dart | 0 .../submit_steward_allocation.g.dart | 0 .../allocated_made/allocated_made.dart | 0 .../allocated_made.freezed.dart | 0 .../allocated_made/allocated_made.g.dart | 0 .../dashboard_kill_house_free_bar.dart | 0 ...dashboard_kill_house_free_bar.freezed.dart | 0 .../dashboard_kill_house_free_bar.g.dart | 0 .../imported_loads_model.dart | 0 .../imported_loads_model.freezed.dart | 0 .../imported_loads_model.g.dart | 0 .../out_province_carcasses_buyer.dart | 0 .../out_province_carcasses_buyer.freezed.dart | 0 .../out_province_carcasses_buyer.g.dart | 0 .../segmentation_model.dart | 0 .../segmentation_model.freezed.dart | 0 .../segmentation_model.g.dart | 0 .../steward_free_bar/steward_free_bar.dart | 0 .../steward_free_bar.freezed.dart | 0 .../steward_free_bar/steward_free_bar.g.dart | 0 .../steward_free_bar_dashboard.dart | 0 .../steward_free_bar_dashboard.freezed.dart | 0 .../steward_free_bar_dashboard.g.dart | 0 .../steward_free_sale_bar.dart | 0 .../steward_free_sale_bar.freezed.dart | 0 .../steward_free_sale_bar.g.dart | 0 .../steward_remain_weight.dart | 0 .../steward_remain_weight.freezed.dart | 0 .../steward_remain_weight.g.dart | 0 .../steward_sales_info_dashboard.dart | 0 .../steward_sales_info_dashboard.freezed.dart | 0 .../steward_sales_info_dashboard.g.dart | 0 .../waiting_arrival/waiting_arrival.dart | 0 .../waiting_arrival.freezed.dart | 0 .../waiting_arrival/waiting_arrival.g.dart | 0 .../data/repositories/steward_repository.dart | 140 ++++ .../repositories/steward_repository_impl.dart | 287 ++++++++ .../pages/buy_in_province_all/logic.dart | 44 +- .../pages/buy_in_province_all/view.dart | 78 ++- .../pages/buy_in_province_waiting/logic.dart | 38 +- .../pages/buy_in_province_waiting/view.dart | 75 +- .../pages/buy_out_of_province/logic.dart | 98 +-- .../pages/buy_out_of_province/view.dart | 6 +- .../presentation/pages/home/logic.dart | 41 +- .../steward/presentation/pages/home/view.dart | 204 ++++-- .../presentation/pages/root/logic.dart | 35 +- .../steward/presentation/pages/root/view.dart | 2 +- .../presentation/pages/sale/logic.dart | 69 +- .../steward/presentation/pages/sale/view.dart | 2 +- .../pages/sales_in_province/logic.dart | 139 ++-- .../pages/sales_in_province/view.dart | 2 +- .../widgets/cu_sale_in_provience.dart | 2 +- .../pages/sales_out_of_province/logic.dart | 76 ++- .../pages/sales_out_of_province/view.dart | 6 +- .../sales_out_of_province_buyers/logic.dart | 53 +- .../sales_out_of_province_buyers/view.dart | 4 +- .../logic.dart | 52 +- .../view.dart | 6 +- .../pages/segmentation/logic.dart | 80 ++- .../presentation/pages/segmentation/view.dart | 2 +- .../segmentation/widgets/cu_bottom_sheet.dart | 4 +- .../chicken/lib/features/steward/steward.dart | 1 + packages/chicken/lib/hive_registrar.g.dart | 2 +- .../lib/presentation/routes/routes.dart | 7 + .../presentation/widget/base_page/logic.dart | 15 +- .../local/chicken_local_imp_test.dart | 4 +- .../remote/auth/auth_remote_imp_test.dart | 6 +- .../user_profile_model_test.dart | 2 +- .../auth/auth_repository_imp_test.dart | 6 +- .../poultry_science_repository_test.dart | 145 ---- .../auth_flow_integration_test.dart | 6 +- .../poultry_science_integration_test.dart | 641 ------------------ .../steward_workflow_integration_test.dart | 456 ------------- packages/core/lib/utils/logger_utils.dart | 28 +- 230 files changed, 2812 insertions(+), 3471 deletions(-) delete mode 100644 packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart delete mode 100644 packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart delete mode 100644 packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart delete mode 100644 packages/chicken/lib/data/repositories/chicken/chicken_repository.dart delete mode 100644 packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart delete mode 100644 packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart rename packages/chicken/lib/{data/data_source => features/common/data/datasources}/local/chicken_local.dart (59%) rename packages/chicken/lib/{data/data_source => features/common/data/datasources}/local/chicken_local_imp.dart (94%) rename packages/chicken/lib/{data/data_source => features/common/data/datasources}/remote/auth/auth_remote.dart (51%) rename packages/chicken/lib/{data/data_source => features/common/data/datasources}/remote/auth/auth_remote_imp.dart (88%) delete mode 100644 packages/chicken/lib/features/common/data/datasources/remote/chicken_remote_data_source.dart create mode 100644 packages/chicken/lib/features/common/data/datasources/remote/common/common_remote.dart create mode 100644 packages/chicken/lib/features/common/data/datasources/remote/common/common_remote_imp.dart create mode 100644 packages/chicken/lib/features/common/data/di/common_di.dart rename packages/chicken/lib/{data/models => features/common/data/model}/local/widely_used_local_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/local/widely_used_local_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/change_password/change_password_request_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/change_password/change_password_request_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/change_password/change_password_request_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/login_request/login_request_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/login_request/login_request_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/login_request/login_request_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/submit_kill_house_free_bar/submit_kill_house_free_bar.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/submit_kill_house_free_bar/submit_kill_house_free_bar.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/request/submit_kill_house_free_bar/submit_kill_house_free_bar.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/auth/auth_response_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/auth/auth_response_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/auth/auth_response_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/bar_information/bar_information.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/bar_information/bar_information.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/bar_information/bar_information.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/broadcast_price/broadcast_price.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/broadcast_price/broadcast_price.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/broadcast_price/broadcast_price.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/captcha/captcha_response_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/captcha/captcha_response_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/captcha/captcha_response_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/guild/guild_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/guild/guild_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/guild/guild_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/guild_profile/guild_profile.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/guild_profile/guild_profile.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/guild_profile/guild_profile.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/inventory/inventory_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/inventory/inventory_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/inventory/inventory_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/iran_province_city/iran_province_city_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/iran_province_city/iran_province_city_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/iran_province_city/iran_province_city_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/kill_house_distribution_info/kill_house_distribution_info.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/kill_house_distribution_info/kill_house_distribution_info.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/kill_house_distribution_info/kill_house_distribution_info.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/kill_house_free_bar/kill_house_free_bar.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/kill_house_free_bar/kill_house_free_bar.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/kill_house_free_bar/kill_house_free_bar.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/roles_products/roles_products.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/roles_products/roles_products.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/roles_products/roles_products.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_info/user_info_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_info/user_info_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_info/user_info_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_profile/user_profile.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_profile/user_profile.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_profile/user_profile.g.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_profile_model/user_profile_model.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_profile_model/user_profile_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/common/data/model}/response/user_profile_model/user_profile_model.g.dart (100%) rename packages/chicken/lib/{ => features/common}/data/repositories/auth/auth_repository.dart (66%) rename packages/chicken/lib/{ => features/common}/data/repositories/auth/auth_repository_imp.dart (72%) create mode 100644 packages/chicken/lib/features/common/data/repositories/common/common_repository.dart create mode 100644 packages/chicken/lib/features/common/data/repositories/common/common_repository_imp.dart rename packages/chicken/lib/{data/data_source/remote/poultry_science/poultry_science_remote_imp.dart => features/poultry_science/data/datasources/remote/poultry_science_remote_data_source_impl.dart} (72%) create mode 100644 packages/chicken/lib/features/poultry_science/data/di/poultry_science_di.dart rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/request/kill_registration/kill_registration.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/request/kill_registration/kill_registration.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/request/kill_registration/kill_registration.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/all_poultry/all_poultry.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/all_poultry/all_poultry.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/all_poultry/all_poultry.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/approved_price/approved_price.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/approved_price/approved_price.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/approved_price/approved_price.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/hatching/hatching_models.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/hatching/hatching_models.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/hatching/hatching_models.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/hatching_report/hatching_report.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/hatching_report/hatching_report.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/hatching_report/hatching_report.g.dart (100%) rename packages/chicken/lib/{data/models/response/poultry_science => features/poultry_science/data/model/response}/home_poultry_science/home_poultry_science_model.dart (100%) rename packages/chicken/lib/{data/models/response/poultry_science => features/poultry_science/data/model/response}/home_poultry_science/home_poultry_science_model.freezed.dart (100%) rename packages/chicken/lib/{data/models/response/poultry_science => features/poultry_science/data/model/response}/home_poultry_science/home_poultry_science_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/kill_house_poultry/kill_house_poultry.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/kill_house_poultry/kill_house_poultry.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/kill_house_poultry/kill_house_poultry.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/kill_request_poultry/kill_request_poultry.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/kill_request_poultry/kill_request_poultry.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/kill_request_poultry/kill_request_poultry.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model/response}/poultry_export/poultry_export.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model/response}/poultry_export/poultry_export.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model/response}/poultry_export/poultry_export.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_farm/poultry_farm.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_farm/poultry_farm.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_farm/poultry_farm.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_hatching/poultry_hatching.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_hatching/poultry_hatching.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_hatching/poultry_hatching.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_order/poultry_order.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_order/poultry_order.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/poultry_order/poultry_order.g.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/sell_for_freezing/sell_for_freezing.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/sell_for_freezing/sell_for_freezing.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/poultry_science/data/model}/response/sell_for_freezing/sell_for_freezing.g.dart (100%) rename packages/chicken/lib/{data/repositories/poultry_science => features/poultry_science/data/repositories}/poultry_science_repository.dart (50%) create mode 100644 packages/chicken/lib/features/poultry_science/data/repositories/poultry_science_repository_impl.dart create mode 100644 packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source.dart create mode 100644 packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source_impl.dart create mode 100644 packages/chicken/lib/features/steward/data/di/steward_di.dart rename packages/chicken/lib/{data/models => features/steward/data/model}/request/conform_allocation/conform_allocation.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/conform_allocation/conform_allocation.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/conform_allocation/conform_allocation.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/create_steward_free_bar/create_steward_free_bar.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/create_steward_free_bar/create_steward_free_bar.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/create_steward_free_bar/create_steward_free_bar.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/steward_allocation/steward_allocation_request.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/steward_allocation/steward_allocation_request.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/steward_allocation/steward_allocation_request.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/steward_free_sale_bar/steward_free_sale_bar_request.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/steward_free_sale_bar/steward_free_sale_bar_request.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/steward_free_sale_bar/steward_free_sale_bar_request.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/submit_steward_allocation/submit_steward_allocation.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/submit_steward_allocation/submit_steward_allocation.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/request/submit_steward_allocation/submit_steward_allocation.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/allocated_made/allocated_made.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/allocated_made/allocated_made.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/allocated_made/allocated_made.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/imported_loads_model/imported_loads_model.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/imported_loads_model/imported_loads_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/imported_loads_model/imported_loads_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/out_province_carcasses_buyer/out_province_carcasses_buyer.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/out_province_carcasses_buyer/out_province_carcasses_buyer.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/segmentation_model/segmentation_model.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/segmentation_model/segmentation_model.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/segmentation_model/segmentation_model.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_bar/steward_free_bar.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_bar/steward_free_bar.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_bar/steward_free_bar.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_bar_dashboard/steward_free_bar_dashboard.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_bar_dashboard/steward_free_bar_dashboard.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_sale_bar/steward_free_sale_bar.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_sale_bar/steward_free_sale_bar.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_free_sale_bar/steward_free_sale_bar.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_remain_weight/steward_remain_weight.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_remain_weight/steward_remain_weight.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_remain_weight/steward_remain_weight.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_sales_info_dashboard/steward_sales_info_dashboard.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/steward_sales_info_dashboard/steward_sales_info_dashboard.g.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/waiting_arrival/waiting_arrival.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/waiting_arrival/waiting_arrival.freezed.dart (100%) rename packages/chicken/lib/{data/models => features/steward/data/model}/response/waiting_arrival/waiting_arrival.g.dart (100%) create mode 100644 packages/chicken/lib/features/steward/data/repositories/steward_repository.dart create mode 100644 packages/chicken/lib/features/steward/data/repositories/steward_repository_impl.dart delete mode 100644 packages/chicken/test/data/repositories/poultry_science/poultry_science_repository_test.dart delete mode 100644 packages/chicken/test/integration/poultry_science_integration_test.dart delete mode 100644 packages/chicken/test/integration/steward_workflow_integration_test.dart diff --git a/lib/infrastructure/utils/local_storage_utils.dart b/lib/infrastructure/utils/local_storage_utils.dart index 8df0853..ac7bbfe 100644 --- a/lib/infrastructure/utils/local_storage_utils.dart +++ b/lib/infrastructure/utils/local_storage_utils.dart @@ -1,6 +1,6 @@ import 'package:rasadyar_app/presentation/routes/app_pages.dart'; import 'package:rasadyar_chicken/data/di/chicken_di.dart'; -import 'package:rasadyar_chicken/presentation/routes/routes.dart'; +import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_inspection/injection/inspection_di.dart'; import 'package:rasadyar_inspection/inspection.dart'; @@ -22,7 +22,7 @@ Future seedTargetPage() async { functions: ["setupLiveStockDI"], ), TargetPage( - route: ChickenRoutes.initSteward, + route: StewardRoutes.initSteward, module: Module.chicken, functions: ["setupChickenDI"], ), diff --git a/lib/presentation/pages/modules/logic.dart b/lib/presentation/pages/modules/logic.dart index 2b65c7b..38c4c5b 100644 --- a/lib/presentation/pages/modules/logic.dart +++ b/lib/presentation/pages/modules/logic.dart @@ -102,7 +102,7 @@ class ModulesLogic extends GetxController { Future navigateToModule(Module module) async { var target = getAuthTargetPage(module).entries.first; - + if (target.value?[0] != null) { isLoading.value = !isLoading.value; await target.value?[0]?.call(); diff --git a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart deleted file mode 100644 index 33eb7be..0000000 --- a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart +++ /dev/null @@ -1,180 +0,0 @@ -import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart'; -import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart'; -import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; -import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; -import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart'; -import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' - hide ProductModel; -import 'package:rasadyar_core/core.dart'; - -abstract class ChickenRemoteDatasource { - Future?> getInventory({required String token, CancelToken? cancelToken}); - - Future getKillHouseDistributionInfo({required String token}); - - Future getGeneralBarInformation({ - required String token, - Map? queryParameters, - }); - - Future?> getWaitingArrivals({ - required String token, - Map? queryParameters, - }); - - Future setSateForArrivals({required String token, required Map request}); - - Future?> getImportedLoadsModel({ - required String token, - Map? queryParameters, - }); - - Future?> getAllocatedMade({ - required String token, - Map? queryParameters, - }); - - Future confirmAllocation({required String token, required Map allocation}); - - Future denyAllocation({required String token, required String allocationToken}); - - Future confirmAllAllocation({ - required String token, - required List allocationTokens, - }); - - Future?> getRolesProducts({required String token}); - - Future?> getGuilds({ - required String token, - Map? queryParameters, - }); - - Future getProfile({required String token}); - - Future postSubmitStewardAllocation({ - required String token, - required SubmitStewardAllocation request, - }); - - Future deleteStewardAllocation({ - required String token, - Map? queryParameters, - }); - - Future updateStewardAllocation({required String token, required ConformAllocation request}); - - Future getStewardDashboard({ - required String token, - required String stratDate, - required String endDate, - }); - - Future getDashboardKillHouseFreeBar({ - required String token, - required String stratDate, - required String endDate, - }); - - Future?> getStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }); - - Future createStewardPurchasesOutSideOfTheProvince({ - required String token, - required CreateStewardFreeBar body, - }); - - Future deleteStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }); - - Future editStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }); - - - Future?> getOutProvinceCarcassesBuyer({ - required String token, - Map? queryParameters, - }); - - Future createOutProvinceCarcassesBuyer({ - required String token, - required OutProvinceCarcassesBuyer body, - }); - - Future?> getProvince({CancelToken? cancelToken}); - - Future?> getCity({required String provinceName}); - - Future?> getStewardFreeSaleBar({ - required String token, - Map? queryParameters, - }); - - Future createOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }); - - Future updateOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }); - - - Future deleteOutProvinceStewardFreeBar({ - required String token, - required String key - }); - - - Future getUserProfile({required String token}); - - Future updateUserProfile({required String token, required UserProfile userProfile}); - - Future updatePassword({required String token, required ChangePasswordRequestModel model}); - - Future?> getSegmentation({ - required String token, - Map? queryParameters, - }); - - Future createSegmentation({required String token, required SegmentationModel model}); - - Future editSegmentation({required String token, required SegmentationModel model}); - - Future deleteSegmentation({required String token, required String key}); - - Future getBroadcastPrice({required String token}); - - Future getStewardSalesInfoDashboard({ - required String token, - Map? queryParameters, - }); - - Future getStewardRemainWeight({required String token}); -} diff --git a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart deleted file mode 100644 index f9e6741..0000000 --- a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart +++ /dev/null @@ -1,548 +0,0 @@ -import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart'; -import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart'; -import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; -import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; -import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart'; -import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' - hide ProductModel; -import 'package:rasadyar_core/core.dart'; - -import 'chicken_remote.dart'; - -class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource { - final DioRemote _httpClient; - - ChickenRemoteDatasourceImp(this._httpClient); - - @override - Future?> getInventory({ - required String token, - CancelToken? cancelToken, - }) async { - var res = await _httpClient.get( - '/roles-products/?role=Steward', - headers: {'Authorization': 'Bearer $token'}, - - fromJsonList: (json) => - (json).map((item) => InventoryModel.fromJson(item as Map)).toList(), - ); - - return res.data; - } - - @override - Future getKillHouseDistributionInfo({required String token}) async { - var res = await _httpClient.get( - '/kill-house-distribution-info/?role=Steward', - headers: {'Authorization': 'Bearer $token'}, - fromJson: KillHouseDistributionInfo.fromJson, - ); - - return res.data; - } - - @override - Future getGeneralBarInformation({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/bars_for_kill_house_dashboard/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: BarInformation.fromJson, - ); - return res.data; - } - - @override - Future?> getWaitingArrivals({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/steward-allocation/', - headers: {'Authorization': 'Bearer $token'}, - queryParameters: queryParameters, - fromJson: (json) => PaginationModel.fromJson( - json, - (json) => WaitingArrivalModel.fromJson(json as Map), - ), - ); - return res.data; - } - - @override - Future setSateForArrivals({ - required String token, - required Map request, - }) async { - await _httpClient.put( - '/steward-allocation/0/', - headers: {'Authorization': 'Bearer $token'}, - data: request, - ); - } - - @override - Future?> getImportedLoadsModel({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/steward-allocation/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => PaginationModel.fromJson( - json, - (data) => ImportedLoadsModel.fromJson(data as Map), - ), - ); - return res.data; - } - - @override - Future?> getAllocatedMade({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/steward-allocation/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => PaginationModel.fromJson( - json, - (json) => AllocatedMadeModel.fromJson(json as Map), - ), - ); - return res.data; - } - - @override - Future confirmAllocation({ - required String token, - required Map allocation, - }) async { - await _httpClient.put( - '/steward-allocation/0/', - headers: {'Authorization': 'Bearer $token'}, - data: allocation, - ); - } - - @override - Future denyAllocation({required String token, required String allocationToken}) async { - await _httpClient.delete( - '/steward-allocation/0/?steward_allocation_key=$allocationToken', - headers: {'Authorization': 'Bearer $token'}, - ); - } - - @override - Future confirmAllAllocation({ - required String token, - required List allocationTokens, - }) async { - await _httpClient.put( - '/steward-allocation/0/', - headers: {'Authorization': 'Bearer $token'}, - data: {'steward_allocation_list': allocationTokens}, - ); - } - - @override - Future?> getRolesProducts({required String token}) async { - var res = await _httpClient.get( - '/roles-products/?role=Steward', - headers: {'Authorization': 'Bearer $token'}, - fromJsonList: (json) => - json.map((item) => ProductModel.fromJson(item as Map)).toList(), - ); - return res.data; - } - - @override - Future?> getGuilds({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/guilds/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJsonList: (json) => - json.map((item) => GuildModel.fromJson(item as Map)).toList(), - ); - return res.data; - } - - @override - Future getProfile({required String token}) async { - var res = await _httpClient.get( - '/guilds/0/?profile', - headers: {'Authorization': 'Bearer $token'}, - fromJson: GuildProfile.fromJson, - ); - return res.data; - } - - @override - Future postSubmitStewardAllocation({ - required String token, - required SubmitStewardAllocation request, - }) async { - await _httpClient.post( - '/steward-allocation/', - headers: {'Authorization': 'Bearer $token'}, - data: request.toJson(), - ); - } - - @override - Future deleteStewardAllocation({ - required String token, - Map? queryParameters, - }) async { - await _httpClient.delete( - '/steward-allocation/0/', - headers: {'Authorization': 'Bearer $token'}, - queryParameters: queryParameters, - ); - } - - @override - Future updateStewardAllocation({ - required String token, - required ConformAllocation request, - }) async { - await _httpClient.put( - '/steward-allocation/0/', - headers: {'Authorization': 'Bearer $token'}, - data: request.toJson(), - ); - } - - @override - Future getStewardDashboard({ - required String token, - required String stratDate, - required String endDate, - }) async { - var res = await _httpClient.get( - '/steward_free_bar_dashboard/?date1=$stratDate&date2=$endDate&search=filter', - headers: {'Authorization': 'Bearer $token'}, - fromJson: StewardFreeBarDashboard.fromJson, - ); - return res.data; - } - - @override - Future getDashboardKillHouseFreeBar({ - required String token, - required String stratDate, - required String endDate, - }) async { - var res = await _httpClient.get( - '/dashboard_kill_house_free_bar/?date1=$stratDate&date2=$endDate&search=filter', - headers: {'Authorization': 'Bearer $token'}, - fromJson: DashboardKillHouseFreeBar.fromJson, - ); - return res.data; - } - - @override - Future?> getStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/steward_free_bar/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => PaginationModel.fromJson( - json, - (json) => StewardFreeBar.fromJson(json as Map), - ), - ); - return res.data; - } - - @override - Future?> getCity({required String provinceName}) async { - var res = await _httpClient.get( - '/iran_city/', - queryParameters: {'name': provinceName}, - fromJsonList: (json) => - json.map((item) => IranProvinceCityModel.fromJson(item as Map)).toList(), - ); - return res.data; - } - - @override - Future?> getProvince({CancelToken? cancelToken}) async { - var res = await _httpClient.get( - '/iran_province/', - fromJsonList: (json) => - json.map((item) => IranProvinceCityModel.fromJson(item as Map)).toList(), - ); - return res.data; - } - - @override - Future createStewardPurchasesOutSideOfTheProvince({ - required String token, - required CreateStewardFreeBar body, - }) async { - await _httpClient.post( - '/steward_free_bar/', - headers: {'Authorization': 'Bearer $token'}, - data: body.toJson()..removeWhere((key, value) => value==null,), - ); - } - - @override - Future editStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }) async { - var data = await _httpClient.put( - '/steward_free_bar/0/', - headers: {'Authorization': 'Bearer $token'}, - data: queryParameters, - fromJson: CreateStewardFreeBar.fromJson, - ); - return data.data; - } - - @override - Future deleteStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }) async { - await _httpClient.delete( - '/steward_free_bar/0/', - headers: {'Authorization': 'Bearer $token'}, - queryParameters: queryParameters, - ); - } - - @override - Future?> getOutProvinceCarcassesBuyer({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/out-province-carcasses-buyer/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => PaginationModel.fromJson( - json, - (json) => OutProvinceCarcassesBuyer.fromJson(json as Map), - ), - ); - return res.data; - } - - @override - Future createOutProvinceCarcassesBuyer({ - required String token, - required OutProvinceCarcassesBuyer body, - }) async { - await _httpClient.post( - '/out-province-carcasses-buyer/', - data: body.toJson()..removeWhere((key, value) => value == null), - headers: {'Authorization': 'Bearer $token'}, - ); - } - - @override - Future?> getStewardFreeSaleBar({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/steward_free_sale_bar/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => PaginationModel.fromJson( - json, - (json) => StewardFreeSaleBar.fromJson(json as Map), - ), - ); - return res.data; - } - - @override - Future createOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }) async { - await _httpClient.post( - '/steward_free_sale_bar/', - data: body.toJson()..removeWhere((key, value) => value == null), - headers: {'Authorization': 'Bearer $token'}, - ); - } - - @override - Future updateOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }) async { - await _httpClient.put( - '/steward_free_sale_bar/0/', - data: body.toJson() - ..removeWhere((key, value) => value == null) - ..addAll({'carcassWeight': body.weightOfCarcasses, 'carcassCount': body.numberOfCarcasses}), - headers: {'Authorization': 'Bearer $token'}, - ); - } - - @override - Future deleteOutProvinceStewardFreeBar({required String token, required String key}) async { - await _httpClient.delete( - '/steward_free_sale_bar/0/', - queryParameters: {'key': key}, - headers: {'Authorization': 'Bearer $token'}, - ); - } - - @override - Future getUserProfile({required String token}) async { - var res = await _httpClient.get( - '/system_user_profile/?self-profile', - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => UserProfile.fromJson(json), - ); - - return res.data; - } - - @override - Future updateUserProfile({required String token, required UserProfile userProfile}) async { - await _httpClient.put( - '/system_user_profile/0/', - headers: {'Authorization': 'Bearer $token'}, - data: userProfile.toJson()..removeWhere((key, value) => value == null), - ); - } - - @override - Future updatePassword({ - required String token, - required ChangePasswordRequestModel model, - }) async { - await _httpClient.post( - '/api/change_password/', - headers: {'Authorization': 'Bearer $token'}, - data: model.toJson()..removeWhere((key, value) => value == null), - ); - } - - @override - Future?> getSegmentation({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/app-segmentation/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => PaginationModel.fromJson( - json, - (json) => SegmentationModel.fromJson(json as Map), - ), - ); - return res.data; - } - - @override - Future createSegmentation({required String token, required SegmentationModel model}) async { - await _httpClient.post( - '/app-segmentation/', - data: model.toJson()..removeWhere((key, value) => value == null), - headers: {'Authorization': 'Bearer $token'}, - ); - } - - @override - Future editSegmentation({required String token, required SegmentationModel model}) async { - await _httpClient.put( - '/app-segmentation/0/', - data: model.toJson()..removeWhere((key, value) => value == null), - headers: {'Authorization': 'Bearer $token'}, - ); - } - - @override - Future deleteSegmentation({ - required String token, - required String key, - }) async { - var res = await _httpClient.delete( - '/app-segmentation/0/', - queryParameters: {'key': key}, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => SegmentationModel.fromJson(json), - ); - - return res.data; - } - - @override - Future getBroadcastPrice({required String token}) async { - var res = await _httpClient.get( - '/broadcast-price/', - headers: {'Authorization': 'Bearer $token'}, - - fromJson: (json) => BroadcastPrice.fromJson(json), - ); - - return res.data; - } - - @override - Future getStewardSalesInfoDashboard({ - required String token, - Map? queryParameters, - }) async { - var res = await _httpClient.get( - '/steward-sales-info-dashboard/', - queryParameters: queryParameters, - headers: {'Authorization': 'Bearer $token'}, - fromJson: (json) => StewardSalesInfoDashboard.fromJson(json), - ); - - return res.data; - } - - @override - Future getStewardRemainWeight({required String token}) async { - var res = await _httpClient.get( - '/steward-remain-weight/', - headers: {'Authorization': 'Bearer $token'}, - fromJson: StewardRemainWeight.fromJson, - ); - - return res.data; - } -} diff --git a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart b/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart deleted file mode 100644 index 3a892c4..0000000 --- a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote.dart +++ /dev/null @@ -1,94 +0,0 @@ -import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart'; -import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart'; -import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart'; -import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart'; -import 'package:rasadyar_core/core.dart'; - -abstract class PoultryScienceRemoteDatasource { - Future getHomePoultryScience({ - required String token, - required String type, - }); - - Future?> getHatchingPoultry({ - required String token, - Map? queryParameters, - }); - - Future submitPoultryScienceReport({ - required String token, - required FormData data, - ProgressCallback? onSendProgress, - }); - - Future?> getPoultryScienceReport({ - required String token, - Map? queryParameters, - }); - - Future?> getPoultryScienceFarmList({ - required String token, - Map? queryParameters, - }); - - Future getApprovedPrice({ required String token, - Map? queryParameters,}); - - Future?> getAllPoultry({ - required String token, - Map? queryParameters, - }); - - - Future getSellForFreezing({ - required String token, - Map? queryParameters, - }); - - - Future getPoultryExport({ - required String token, - Map? queryParameters, - }); - - - Future?> getUserPoultry({ - required String token, - Map? queryParameters, - }); - - Future?> getPoultryHatching({ - required String token, - Map? queryParameters, - }); - - Future?> getKillHouseList({ - required String token, - Map? queryParameters, - }); - - Future submitKillRegistration({ - required String token, - required KillRegistrationRequest request, - }); - - - Future?> getPoultryOderList({ - required String token, - Map? queryParameters, - }); - - Future deletePoultryOder({ - required String token, - required String orderId, - }); -} diff --git a/packages/chicken/lib/data/di/chicken_di.dart b/packages/chicken/lib/data/di/chicken_di.dart index cf9a523..2a037a2 100644 --- a/packages/chicken/lib/data/di/chicken_di.dart +++ b/packages/chicken/lib/data/di/chicken_di.dart @@ -1,24 +1,12 @@ -import 'package:rasadyar_chicken/chicken.dart'; import 'package:rasadyar_chicken/data/common/dio_error_handler.dart'; import 'package:rasadyar_chicken/features/common/presentation/routes/routes.dart'; -import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart'; -import 'package:rasadyar_chicken/data/data_source/local/chicken_local_imp.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote_imp.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote_imp.dart'; +import 'package:rasadyar_chicken/features/common/data/di/common_di.dart'; import 'package:rasadyar_chicken/data/data_source/remote/kill_house/kill_house_remote.dart'; import 'package:rasadyar_chicken/data/data_source/remote/kill_house/kill_house_remote_impl.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart'; -import 'package:rasadyar_chicken/data/repositories/auth/auth_repository.dart'; -import 'package:rasadyar_chicken/data/repositories/auth/auth_repository_imp.dart'; -import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart'; -import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository_imp.dart'; import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository.dart'; import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository_impl.dart'; -import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository.dart'; -import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository_imp.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/di/poultry_science_di.dart'; +import 'package:rasadyar_chicken/features/steward/data/di/steward_di.dart'; import 'package:rasadyar_core/core.dart'; GetIt diChicken = GetIt.asNewInstance(); @@ -61,38 +49,14 @@ Future setupChickenDI() async { final dioRemote = diChicken.get(); await dioRemote.init(); - diChicken.registerLazySingleton( - () => AuthRemoteDataSourceImp(dioRemote), - ); + // Setup common feature DI + await setupCommonDI(diChicken, dioRemote); - diChicken.registerLazySingleton( - () => AuthRepositoryImpl(diChicken.get()), - ); + // Setup poultry_science feature DI + await setupPoultryScienceDI(diChicken, dioRemote); - diChicken.registerLazySingleton( - () => ChickenRemoteDatasourceImp(diChicken.get()), - ); - - diChicken.registerLazySingleton( - () => ChickenLocalDataSourceImp(), - ); - - diChicken.registerLazySingleton( - () => ChickenRepositoryImp( - remote: diChicken.get(), - local: diChicken.get(), - ), - ); - - diChicken.registerLazySingleton( - () => PoultryScienceRemoteDatasourceImp(diChicken.get()), - ); - - diChicken.registerLazySingleton( - () => PoultryScienceRepositoryImp( - diChicken.get(), - ), - ); + // Setup steward feature DI + await setupStewardDI(diChicken, dioRemote); //region kill house module DI diChicken.registerLazySingleton( @@ -107,23 +71,17 @@ Future setupChickenDI() async { Future newSetupAuthDI(String newUrl) async { var tokenService = Get.find(); - // همیشه baseUrl جدید رو ذخیره کن await tokenService.saveBaseUrl(Module.chicken, newUrl); - // Re-register AppInterceptor - if (diChicken.isRegistered( - instanceName: 'chickenInterceptor', - )) { - await diChicken.unregister( - instanceName: 'chickenInterceptor', - ); - } + // پاک‌سازی DI مخصوص ماژول مرغ + await diChicken.resetScope(); + diChicken.pushNewScope(); + + // --- Re-register AppInterceptor diChicken.registerLazySingleton( () => AppInterceptor( refreshTokenCallback: () async => null, - saveTokenCallback: (String newToken) async { - // await tokenService.saveAccessToken(newToken); - }, + saveTokenCallback: (newToken) async {}, clearTokenCallback: () async { await tokenService.deleteModuleTokens(Module.chicken); Get.offAllNamed(CommonRoutes.auth, arguments: Module.chicken); @@ -132,10 +90,7 @@ Future newSetupAuthDI(String newUrl) async { instanceName: 'chickenInterceptor', ); - // Re-register DioRemote - if (diChicken.isRegistered()) { - await diChicken.unregister(); - } + // --- Re-register DioRemote diChicken.registerLazySingleton( () => DioRemote( baseUrl: newUrl, @@ -144,35 +99,14 @@ Future newSetupAuthDI(String newUrl) async { ), ), ); + final dioRemote = diChicken.get(); await dioRemote.init(); - // Re-register dependent layers - await reRegister( - () => AuthRemoteDataSourceImp(dioRemote), - ); - await reRegister( - () => AuthRepositoryImpl(diChicken.get()), - ); - await reRegister( - () => ChickenRemoteDatasourceImp(dioRemote), - ); - await reRegister(() => ChickenLocalDataSourceImp()); - await reRegister( - () => ChickenRepositoryImp( - remote: diChicken.get(), - local: diChicken.get(), - ), - ); - - await reRegister( - () => PoultryScienceRemoteDatasourceImp(dioRemote), - ); - await reRegister( - () => PoultryScienceRepositoryImp( - diChicken.get(), - ), - ); + // --- common, poultry_science, steward + await setupCommonDI(diChicken, dioRemote); + await setupPoultryScienceDI(diChicken, dioRemote); + await setupStewardDI(diChicken, dioRemote); } Future reRegister(T Function() factory) async { diff --git a/packages/chicken/lib/data/repositories/chicken/chicken_repository.dart b/packages/chicken/lib/data/repositories/chicken/chicken_repository.dart deleted file mode 100644 index 8898e1a..0000000 --- a/packages/chicken/lib/data/repositories/chicken/chicken_repository.dart +++ /dev/null @@ -1,200 +0,0 @@ -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; -import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart'; -import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; -import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; -import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart'; -import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' - hide ProductModel; -import 'package:rasadyar_core/core.dart'; - -import '../../models/request/create_steward_free_bar/create_steward_free_bar.dart'; - -abstract class ChickenRepository { - //region Remote - - //region Steward - Future?> getInventory({required String token, CancelToken? cancelToken}); - - Future getKillHouseDistributionInfo({required String token}); - - Future getGeneralBarInformation({ - required String token, - Map? queryParameters, - }); - - Future?> getWaitingArrivals({ - required String token, - Map? queryParameters, - }); - - Future setSateForArrivals({required String token, required Map request}); - - Future?> getImportedLoadsModel({ - required String token, - Map? queryParameters, - }); - - Future?> getAllocatedMade({ - required String token, - Map? queryParameters, - }); - - Future confirmAllocation({required String token, required Map allocation}); - - Future denyAllocation({required String token, required String allocationToken}); - - Future confirmAllAllocation({ - required String token, - required List allocationTokens, - }); - - Future?> getRolesProducts({required String token}); - - Future?> getGuilds({ - required String token, - Map? queryParameters, - }); - - Future getProfile({required String token}); - - Future postSubmitStewardAllocation({ - required String token, - required SubmitStewardAllocation request, - }); - - Future deleteStewardAllocation({ - required String token, - Map? queryParameters, - }); - - Future updateStewardAllocation({required String token, required ConformAllocation request}); - - Future getStewardDashboard({ - required String token, - required String stratDate, - required String endDate, - }); - - Future getDashboardKillHouseFreeBar({ - required String token, - required String stratDate, - required String endDate, - }); - - Future?> getStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }); - - Future createStewardPurchasesOutSideOfTheProvince({ - required String token, - required CreateStewardFreeBar body, - }); - - - Future editStewardPurchasesOutSideOfTheProvince({ - required String token, - required CreateStewardFreeBar body, - }); - - - - Future deleteStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }); - - Future?> getOutProvinceCarcassesBuyer({ - required String token, - Map? queryParameters, - }); - - Future createOutProvinceCarcassesBuyer({ - required String token, - required OutProvinceCarcassesBuyer body, - }); - - Future?> getProvince({CancelToken? cancelToken}); - - Future?> getCity({required String provinceName}); - - Future?> getStewardFreeSaleBar({ - required String token, - Map? queryParameters, - }); - - Future createOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }); - - Future updateOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }); - - Future deleteOutProvinceStewardFreeBar({ - required String token, - required String key - }); - - - - Future getUserProfile({required String token}); - - Future updateUserProfile({required String token, required UserProfile userProfile}); - - Future updatePassword({required String token, required ChangePasswordRequestModel model}); - - Future?> getSegmentation({ - required String token, - Map? queryParameters, - }); - - Future createSegmentation({required String token, required SegmentationModel model}); - - Future editSegmentation({required String token, required SegmentationModel model}); - - Future deleteSegmentation({required String token, required String key}); - - Future getBroadcastPrice({required String token}); - - Future getStewardSalesInfoDashboard({ - required String token, - Map? queryParameters, - }); - - Future getStewardRemainWeight({required String token}); - - //endregion - - - - - //endregion - - //region local - Future initWidleyUsed(); - - WidelyUsedLocalModel? getAllWidely(); - //endregion -} diff --git a/packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart b/packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart deleted file mode 100644 index 0ab59c6..0000000 --- a/packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart +++ /dev/null @@ -1,433 +0,0 @@ -import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote.dart'; -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; -import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart'; -import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart'; -import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; -import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; -import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart'; -import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' - hide ProductModel; -import 'package:rasadyar_core/core.dart'; - -import 'chicken_repository.dart'; - -class ChickenRepositoryImp implements ChickenRepository { - final ChickenRemoteDatasource remote; - final ChickenLocalDataSource local; - - ChickenRepositoryImp({required this.remote, required this.local}); - - //region Remote - @override - Future?> getInventory({ - required String token, - CancelToken? cancelToken, - }) async { - var res = await remote.getInventory(token: token, cancelToken: cancelToken); - return res; - } - - @override - Future getKillHouseDistributionInfo({ - required String token, - }) async { - var res = await remote.getKillHouseDistributionInfo(token: token); - return res; - } - - @override - Future getGeneralBarInformation({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getGeneralBarInformation( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future?> getWaitingArrivals({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getWaitingArrivals( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future setSateForArrivals({ - required String token, - required Map request, - }) async { - await remote.setSateForArrivals(token: token, request: request); - } - - @override - Future?> getImportedLoadsModel({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getImportedLoadsModel( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future?> getAllocatedMade({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getAllocatedMade( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future confirmAllocation({ - required String token, - required Map allocation, - }) async { - await remote.confirmAllocation(token: token, allocation: allocation); - } - - @override - Future denyAllocation({ - required String token, - required String allocationToken, - }) async { - await remote.denyAllocation(token: token, allocationToken: allocationToken); - } - - @override - Future confirmAllAllocation({ - required String token, - required List allocationTokens, - }) async { - await remote.confirmAllAllocation( - token: token, - allocationTokens: allocationTokens, - ); - } - - @override - Future?> getRolesProducts({required String token}) async { - var res = await remote.getRolesProducts(token: token); - return res; - } - - @override - Future?> getGuilds({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getGuilds( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future getProfile({required String token}) async { - var res = await remote.getProfile(token: token); - return res; - } - - @override - Future postSubmitStewardAllocation({ - required String token, - required SubmitStewardAllocation request, - }) async { - await remote.postSubmitStewardAllocation(token: token, request: request); - } - - @override - Future deleteStewardAllocation({ - required String token, - Map? queryParameters, - }) async { - await remote.deleteStewardAllocation( - token: token, - queryParameters: queryParameters, - ); - } - - @override - Future updateStewardAllocation({ - required String token, - required ConformAllocation request, - }) async { - await remote.updateStewardAllocation(token: token, request: request); - } - - @override - Future getStewardDashboard({ - required String token, - required String stratDate, - required String endDate, - }) async { - var res = await remote.getStewardDashboard( - token: token, - stratDate: stratDate, - endDate: endDate, - ); - return res; - } - - @override - Future getDashboardKillHouseFreeBar({ - required String token, - required String stratDate, - required String endDate, - }) async { - var res = await remote.getDashboardKillHouseFreeBar( - token: token, - stratDate: stratDate, - endDate: endDate, - ); - return res; - } - - @override - Future?> - getStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getStewardPurchasesOutSideOfTheProvince( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future?> getCity({ - required String provinceName, - }) async { - var res = await remote.getCity(provinceName: provinceName); - return res; - } - - @override - Future?> getProvince({ - CancelToken? cancelToken, - }) async { - var res = await remote.getProvince(cancelToken: cancelToken); - return res; - } - - @override - Future createStewardPurchasesOutSideOfTheProvince({ - required String token, - required CreateStewardFreeBar body, - }) async { - await remote.createStewardPurchasesOutSideOfTheProvince( - token: token, - body: body, - ); - } - - @override - Future editStewardPurchasesOutSideOfTheProvince({ - required String token, - required CreateStewardFreeBar body, - }) async { - return await remote.editStewardPurchasesOutSideOfTheProvince( - token: token, - queryParameters: body.toJson() - ..removeWhere((key, value) => value == null), - ); - } - - @override - Future deleteStewardPurchasesOutSideOfTheProvince({ - required String token, - Map? queryParameters, - }) async { - await remote.deleteStewardPurchasesOutSideOfTheProvince( - token: token, - queryParameters: queryParameters, - ); - } - - @override - Future?> - getOutProvinceCarcassesBuyer({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getOutProvinceCarcassesBuyer( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future createOutProvinceCarcassesBuyer({ - required String token, - required OutProvinceCarcassesBuyer body, - }) async { - await remote.createOutProvinceCarcassesBuyer(token: token, body: body); - } - - @override - Future?> getStewardFreeSaleBar({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getStewardFreeSaleBar( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future createOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }) async { - await remote.createOutProvinceStewardFreeBar(token: token, body: body); - } - - @override - Future updateOutProvinceStewardFreeBar({ - required String token, - required StewardFreeSaleBarRequest body, - }) async { - await remote.updateOutProvinceStewardFreeBar(token: token, body: body); - } - - @override - Future deleteOutProvinceStewardFreeBar({ - required String token, - required String key, - }) async { - await remote.deleteOutProvinceStewardFreeBar(token: token, key: key); - } - - @override - Future getUserProfile({required String token}) async { - var res = await remote.getUserProfile(token: token); - return res; - } - - @override - Future updateUserProfile({ - required String token, - required UserProfile userProfile, - }) async { - await remote.updateUserProfile(token: token, userProfile: userProfile); - } - - @override - Future updatePassword({ - required String token, - required ChangePasswordRequestModel model, - }) async { - await remote.updatePassword(token: token, model: model); - } - - @override - Future?> getSegmentation({ - required String token, - Map? queryParameters, - }) async { - var res = await remote.getSegmentation( - token: token, - queryParameters: queryParameters, - ); - return res; - } - - @override - Future createSegmentation({ - required String token, - required SegmentationModel model, - }) async { - await remote.createSegmentation(token: token, model: model); - } - - @override - Future editSegmentation({ - required String token, - required SegmentationModel model, - }) async { - await remote.editSegmentation(token: token, model: model); - } - - @override - Future deleteSegmentation({ - required String token, - required String key, - }) async { - var res = await remote.deleteSegmentation(token: token, key: key); - return res; - } - - @override - Future getBroadcastPrice({required String token}) async { - var res = await remote.getBroadcastPrice(token: token); - return res; - } - - //endregion - - //region local - @override - WidelyUsedLocalModel? getAllWidely() => local.getAllWidely(); - - @override - Future initWidleyUsed() async { - await local.initWidleyUsed(); - } - - @override - Future getStewardSalesInfoDashboard({ - required String token, - Map? queryParameters, - }) async { - return await remote.getStewardSalesInfoDashboard( - token: token, - queryParameters: queryParameters, - ); - } - - @override - Future getStewardRemainWeight({required String token}) async { - return await remote.getStewardRemainWeight(token: token); - } - - //endregion -} diff --git a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart b/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart deleted file mode 100644 index 7bbed7c..0000000 --- a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository_imp.dart +++ /dev/null @@ -1,145 +0,0 @@ -import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote.dart'; -import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart'; -import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart'; -import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart'; -import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart'; -import 'package:rasadyar_core/core.dart'; - -import 'poultry_science_repository.dart'; - -class PoultryScienceRepositoryImp implements PoultryScienceRepository { - final PoultryScienceRemoteDatasource datasource; - - PoultryScienceRepositoryImp(this.datasource); - - @override - Future getHomePoultry({ - required String token, - required String type, - }) async => await datasource.getHomePoultryScience(token: token, type: type); - - @override - Future?> getHatchingPoultry({ - required String token, - Map? queryParameters, - }) async => await datasource.getHatchingPoultry(token: token, queryParameters: queryParameters); - - @override - Future submitPoultryScienceReport({ - required String token, - required FormData data, - ProgressCallback? onSendProgress, - }) async => await datasource.submitPoultryScienceReport( - token: token, - data: data, - onSendProgress: onSendProgress, - ); - - @override - Future?> getHatchingPoultryReport({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getPoultryScienceReport(token: token, queryParameters: queryParameters); - } - - @override - Future?> getPoultryScienceFarmList({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getPoultryScienceFarmList( - token: token, - queryParameters: queryParameters, - ); - } - - @override - Future getApprovedPrice({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getApprovedPrice(token: token, queryParameters: queryParameters); - } - - @override - Future?> getAllPoultry({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getAllPoultry(token: token, queryParameters: queryParameters); - } - - @override - Future getPoultryExport({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getPoultryExport(token: token, queryParameters: queryParameters); - } - - @override - Future getSellForFreezing({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getSellForFreezing(token: token, queryParameters: queryParameters); - } - - @override - Future?> getUserPoultry({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getUserPoultry(token: token, queryParameters: queryParameters); - } - - @override - Future?> getPoultryHatching({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getPoultryHatching(token: token, queryParameters: queryParameters); - } - - @override - Future?> getKillHouseList({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getKillHouseList(token: token, queryParameters: queryParameters); - } - - @override - Future submitKillRegistration({ - required String token, - required KillRegistrationRequest request, - }) async { - await datasource.submitKillRegistration(token: token, request: request); - } - - @override - Future?> getPoultryOderList({ - required String token, - Map? queryParameters, - }) async { - return await datasource.getPoultryOderList(token: token, queryParameters: queryParameters); - } - - @override - Future deletePoultryOder({ - required String token, - required String orderId, - }) async { - await datasource.deletePoultryOder(token: token, orderId: orderId); - } -} diff --git a/packages/chicken/lib/data/data_source/local/chicken_local.dart b/packages/chicken/lib/features/common/data/datasources/local/chicken_local.dart similarity index 59% rename from packages/chicken/lib/data/data_source/local/chicken_local.dart rename to packages/chicken/lib/features/common/data/datasources/local/chicken_local.dart index e02478a..1c0a6e0 100644 --- a/packages/chicken/lib/data/data_source/local/chicken_local.dart +++ b/packages/chicken/lib/features/common/data/datasources/local/chicken_local.dart @@ -1,4 +1,4 @@ -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart'; abstract class ChickenLocalDataSource { Future openBox(); diff --git a/packages/chicken/lib/data/data_source/local/chicken_local_imp.dart b/packages/chicken/lib/features/common/data/datasources/local/chicken_local_imp.dart similarity index 94% rename from packages/chicken/lib/data/data_source/local/chicken_local_imp.dart rename to packages/chicken/lib/features/common/data/datasources/local/chicken_local_imp.dart index e792a29..20053ff 100644 --- a/packages/chicken/lib/data/data_source/local/chicken_local_imp.dart +++ b/packages/chicken/lib/features/common/data/datasources/local/chicken_local_imp.dart @@ -1,4 +1,4 @@ -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart'; import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/data/data_source/remote/auth/auth_remote.dart b/packages/chicken/lib/features/common/data/datasources/remote/auth/auth_remote.dart similarity index 51% rename from packages/chicken/lib/data/data_source/remote/auth/auth_remote.dart rename to packages/chicken/lib/features/common/data/datasources/remote/auth/auth_remote.dart index c42add7..da26686 100644 --- a/packages/chicken/lib/data/data_source/remote/auth/auth_remote.dart +++ b/packages/chicken/lib/features/common/data/datasources/remote/auth/auth_remote.dart @@ -1,6 +1,6 @@ -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; abstract class AuthRemoteDataSource { Future login({required Map authRequest}); @@ -11,6 +11,6 @@ abstract class AuthRemoteDataSource { Future getUserInfo(String phoneNumber); - /// Calls `/steward-app-login/` endpoint with required token and `server` as query param, plus optional extra query parameters. + Future stewardAppLogin({required String token, Map? queryParameters}); } diff --git a/packages/chicken/lib/data/data_source/remote/auth/auth_remote_imp.dart b/packages/chicken/lib/features/common/data/datasources/remote/auth/auth_remote_imp.dart similarity index 88% rename from packages/chicken/lib/data/data_source/remote/auth/auth_remote_imp.dart rename to packages/chicken/lib/features/common/data/datasources/remote/auth/auth_remote_imp.dart index a0b85f8..a240cee 100644 --- a/packages/chicken/lib/data/data_source/remote/auth/auth_remote_imp.dart +++ b/packages/chicken/lib/features/common/data/datasources/remote/auth/auth_remote_imp.dart @@ -1,5 +1,5 @@ -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; import 'package:rasadyar_core/core.dart'; import 'auth_remote.dart'; diff --git a/packages/chicken/lib/features/common/data/datasources/remote/chicken_remote_data_source.dart b/packages/chicken/lib/features/common/data/datasources/remote/chicken_remote_data_source.dart deleted file mode 100644 index ddf9315..0000000 --- a/packages/chicken/lib/features/common/data/datasources/remote/chicken_remote_data_source.dart +++ /dev/null @@ -1,3 +0,0 @@ -abstract class ChickenRemoteDataSource { - Future getChickens(); -} \ No newline at end of file diff --git a/packages/chicken/lib/features/common/data/datasources/remote/common/common_remote.dart b/packages/chicken/lib/features/common/data/datasources/remote/common/common_remote.dart new file mode 100644 index 0000000..b289b38 --- /dev/null +++ b/packages/chicken/lib/features/common/data/datasources/remote/common/common_remote.dart @@ -0,0 +1,75 @@ +import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart'; +import 'package:rasadyar_core/core.dart'; + +abstract class CommonRemoteDatasource { + Future?> getInventory({ + required String token, + CancelToken? cancelToken, + }); + + Future getKillHouseDistributionInfo({ + required String token, + }); + + Future getGeneralBarInformation({ + required String token, + Map? queryParameters, + }); + + Future?> getRolesProducts({required String token}); + + Future?> getGuilds({ + required String token, + Map? queryParameters, + }); + + Future getProfile({required String token}); + + Future?> getProvince({CancelToken? cancelToken}); + + Future?> getCity({required String provinceName}); + + Future getUserProfile({required String token}); + + Future updateUserProfile({ + required String token, + required UserProfile userProfile, + }); + + Future updatePassword({ + required String token, + required ChangePasswordRequestModel model, + }); + + Future?> getSegmentation({ + required String token, + Map? queryParameters, + }); + + Future createSegmentation({ + required String token, + required SegmentationModel model, + }); + + Future editSegmentation({ + required String token, + required SegmentationModel model, + }); + + Future deleteSegmentation({ + required String token, + required String key, + }); + + Future getBroadcastPrice({required String token}); +} diff --git a/packages/chicken/lib/features/common/data/datasources/remote/common/common_remote_imp.dart b/packages/chicken/lib/features/common/data/datasources/remote/common/common_remote_imp.dart new file mode 100644 index 0000000..f977f40 --- /dev/null +++ b/packages/chicken/lib/features/common/data/datasources/remote/common/common_remote_imp.dart @@ -0,0 +1,238 @@ +import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart'; +import 'package:rasadyar_core/core.dart'; + +import 'common_remote.dart'; + +class CommonRemoteDatasourceImp implements CommonRemoteDatasource { + final DioRemote _httpClient; + + CommonRemoteDatasourceImp(this._httpClient); + + @override + Future?> getInventory({ + required String token, + CancelToken? cancelToken, + }) async { + var res = await _httpClient.get( + '/roles-products/?role=Steward', + headers: {'Authorization': 'Bearer $token'}, + + fromJsonList: (json) => (json) + .map((item) => InventoryModel.fromJson(item as Map)) + .toList(), + ); + + return res.data; + } + + @override + Future getKillHouseDistributionInfo({ + required String token, + }) async { + var res = await _httpClient.get( + '/kill-house-distribution-info/?role=Steward', + headers: {'Authorization': 'Bearer $token'}, + fromJson: KillHouseDistributionInfo.fromJson, + ); + + return res.data; + } + + @override + Future getGeneralBarInformation({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/bars_for_kill_house_dashboard/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: BarInformation.fromJson, + ); + return res.data; + } + + @override + Future?> getRolesProducts({required String token}) async { + var res = await _httpClient.get( + '/roles-products/?role=Steward', + headers: {'Authorization': 'Bearer $token'}, + fromJsonList: (json) => json + .map((item) => ProductModel.fromJson(item as Map)) + .toList(), + ); + return res.data; + } + + @override + Future?> getGuilds({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/guilds/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJsonList: (json) => json + .map((item) => GuildModel.fromJson(item as Map)) + .toList(), + ); + return res.data; + } + + @override + Future getProfile({required String token}) async { + var res = await _httpClient.get( + '/guilds/0/?profile', + headers: {'Authorization': 'Bearer $token'}, + fromJson: GuildProfile.fromJson, + ); + return res.data; + } + + @override + Future?> getCity({ + required String provinceName, + }) async { + var res = await _httpClient.get( + '/iran_city/', + queryParameters: {'name': provinceName}, + fromJsonList: (json) => json + .map( + (item) => + IranProvinceCityModel.fromJson(item as Map), + ) + .toList(), + ); + return res.data; + } + + @override + Future?> getProvince({ + CancelToken? cancelToken, + }) async { + var res = await _httpClient.get( + '/iran_province/', + fromJsonList: (json) => json + .map( + (item) => + IranProvinceCityModel.fromJson(item as Map), + ) + .toList(), + ); + return res.data; + } + + @override + Future getUserProfile({required String token}) async { + var res = await _httpClient.get( + '/system_user_profile/?self-profile', + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => UserProfile.fromJson(json), + ); + + return res.data; + } + + @override + Future updateUserProfile({ + required String token, + required UserProfile userProfile, + }) async { + await _httpClient.put( + '/system_user_profile/0/', + headers: {'Authorization': 'Bearer $token'}, + data: userProfile.toJson()..removeWhere((key, value) => value == null), + ); + } + + @override + Future updatePassword({ + required String token, + required ChangePasswordRequestModel model, + }) async { + await _httpClient.post( + '/api/change_password/', + headers: {'Authorization': 'Bearer $token'}, + data: model.toJson()..removeWhere((key, value) => value == null), + ); + } + + @override + Future?> getSegmentation({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/app-segmentation/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => PaginationModel.fromJson( + json, + (json) => SegmentationModel.fromJson(json as Map), + ), + ); + return res.data; + } + + @override + Future createSegmentation({ + required String token, + required SegmentationModel model, + }) async { + await _httpClient.post( + '/app-segmentation/', + data: model.toJson()..removeWhere((key, value) => value == null), + headers: {'Authorization': 'Bearer $token'}, + ); + } + + @override + Future editSegmentation({ + required String token, + required SegmentationModel model, + }) async { + await _httpClient.put( + '/app-segmentation/0/', + data: model.toJson()..removeWhere((key, value) => value == null), + headers: {'Authorization': 'Bearer $token'}, + ); + } + + @override + Future deleteSegmentation({ + required String token, + required String key, + }) async { + var res = await _httpClient.delete( + '/app-segmentation/0/', + queryParameters: {'key': key}, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => SegmentationModel.fromJson(json), + ); + + return res.data; + } + + @override + Future getBroadcastPrice({required String token}) async { + var res = await _httpClient.get( + '/broadcast-price/', + headers: {'Authorization': 'Bearer $token'}, + + fromJson: (json) => BroadcastPrice.fromJson(json), + ); + + return res.data; + } +} diff --git a/packages/chicken/lib/features/common/data/di/common_di.dart b/packages/chicken/lib/features/common/data/di/common_di.dart new file mode 100644 index 0000000..b9026e4 --- /dev/null +++ b/packages/chicken/lib/features/common/data/di/common_di.dart @@ -0,0 +1,66 @@ +import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local_imp.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote_imp.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/common/common_remote.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/common/common_remote_imp.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/auth/auth_repository.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/auth/auth_repository_imp.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository_imp.dart'; +import 'package:rasadyar_core/core.dart'; + +/// Setup dependency injection for common feature +Future setupCommonDI(GetIt di, DioRemote dioRemote) async { + di.registerLazySingleton( + () => AuthRemoteDataSourceImp(dioRemote), + ); + + di.registerLazySingleton( + () => AuthRepositoryImpl(di.get()), + ); + + di.registerLazySingleton( + () => CommonRemoteDatasourceImp(dioRemote), + ); + + di.registerLazySingleton( + () => ChickenLocalDataSourceImp(), + ); + + di.registerLazySingleton( + () => CommonRepositoryImp( + remote: di.get(), + local: di.get(), + ), + ); +} + +/// Re-register common dependencies (used when base URL changes) +Future reRegisterCommonDI(GetIt di, DioRemote dioRemote) async { + await reRegister(di, () => AuthRemoteDataSourceImp(dioRemote)); + await reRegister( + di, + () => AuthRepositoryImpl(di.get()), + ); + await reRegister(di, () => CommonRemoteDatasourceImp(dioRemote)); + await reRegister(di, () => ChickenLocalDataSourceImp()); + await reRegister( + di, + () => CommonRepositoryImp( + remote: di.get(), + local: di.get(), + ), + ); +} + +/// Helper function to re-register a dependency +Future reRegister( + GetIt di, + T Function() factory, +) async { + if (di.isRegistered()) { + await di.unregister(); + } + di.registerLazySingleton(factory); +} diff --git a/packages/chicken/lib/data/models/local/widely_used_local_model.dart b/packages/chicken/lib/features/common/data/model/local/widely_used_local_model.dart similarity index 100% rename from packages/chicken/lib/data/models/local/widely_used_local_model.dart rename to packages/chicken/lib/features/common/data/model/local/widely_used_local_model.dart diff --git a/packages/chicken/lib/data/models/local/widely_used_local_model.g.dart b/packages/chicken/lib/features/common/data/model/local/widely_used_local_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/local/widely_used_local_model.g.dart rename to packages/chicken/lib/features/common/data/model/local/widely_used_local_model.g.dart diff --git a/packages/chicken/lib/data/models/request/change_password/change_password_request_model.dart b/packages/chicken/lib/features/common/data/model/request/change_password/change_password_request_model.dart similarity index 100% rename from packages/chicken/lib/data/models/request/change_password/change_password_request_model.dart rename to packages/chicken/lib/features/common/data/model/request/change_password/change_password_request_model.dart diff --git a/packages/chicken/lib/data/models/request/change_password/change_password_request_model.freezed.dart b/packages/chicken/lib/features/common/data/model/request/change_password/change_password_request_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/change_password/change_password_request_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/request/change_password/change_password_request_model.freezed.dart diff --git a/packages/chicken/lib/data/models/request/change_password/change_password_request_model.g.dart b/packages/chicken/lib/features/common/data/model/request/change_password/change_password_request_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/change_password/change_password_request_model.g.dart rename to packages/chicken/lib/features/common/data/model/request/change_password/change_password_request_model.g.dart diff --git a/packages/chicken/lib/data/models/request/login_request/login_request_model.dart b/packages/chicken/lib/features/common/data/model/request/login_request/login_request_model.dart similarity index 100% rename from packages/chicken/lib/data/models/request/login_request/login_request_model.dart rename to packages/chicken/lib/features/common/data/model/request/login_request/login_request_model.dart diff --git a/packages/chicken/lib/data/models/request/login_request/login_request_model.freezed.dart b/packages/chicken/lib/features/common/data/model/request/login_request/login_request_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/login_request/login_request_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/request/login_request/login_request_model.freezed.dart diff --git a/packages/chicken/lib/data/models/request/login_request/login_request_model.g.dart b/packages/chicken/lib/features/common/data/model/request/login_request/login_request_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/login_request/login_request_model.g.dart rename to packages/chicken/lib/features/common/data/model/request/login_request/login_request_model.g.dart diff --git a/packages/chicken/lib/data/models/request/submit_kill_house_free_bar/submit_kill_house_free_bar.dart b/packages/chicken/lib/features/common/data/model/request/submit_kill_house_free_bar/submit_kill_house_free_bar.dart similarity index 100% rename from packages/chicken/lib/data/models/request/submit_kill_house_free_bar/submit_kill_house_free_bar.dart rename to packages/chicken/lib/features/common/data/model/request/submit_kill_house_free_bar/submit_kill_house_free_bar.dart diff --git a/packages/chicken/lib/data/models/request/submit_kill_house_free_bar/submit_kill_house_free_bar.freezed.dart b/packages/chicken/lib/features/common/data/model/request/submit_kill_house_free_bar/submit_kill_house_free_bar.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/submit_kill_house_free_bar/submit_kill_house_free_bar.freezed.dart rename to packages/chicken/lib/features/common/data/model/request/submit_kill_house_free_bar/submit_kill_house_free_bar.freezed.dart diff --git a/packages/chicken/lib/data/models/request/submit_kill_house_free_bar/submit_kill_house_free_bar.g.dart b/packages/chicken/lib/features/common/data/model/request/submit_kill_house_free_bar/submit_kill_house_free_bar.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/submit_kill_house_free_bar/submit_kill_house_free_bar.g.dart rename to packages/chicken/lib/features/common/data/model/request/submit_kill_house_free_bar/submit_kill_house_free_bar.g.dart diff --git a/packages/chicken/lib/data/models/response/auth/auth_response_model.dart b/packages/chicken/lib/features/common/data/model/response/auth/auth_response_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/auth/auth_response_model.dart rename to packages/chicken/lib/features/common/data/model/response/auth/auth_response_model.dart diff --git a/packages/chicken/lib/data/models/response/auth/auth_response_model.freezed.dart b/packages/chicken/lib/features/common/data/model/response/auth/auth_response_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/auth/auth_response_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/auth/auth_response_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/auth/auth_response_model.g.dart b/packages/chicken/lib/features/common/data/model/response/auth/auth_response_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/auth/auth_response_model.g.dart rename to packages/chicken/lib/features/common/data/model/response/auth/auth_response_model.g.dart diff --git a/packages/chicken/lib/data/models/response/bar_information/bar_information.dart b/packages/chicken/lib/features/common/data/model/response/bar_information/bar_information.dart similarity index 100% rename from packages/chicken/lib/data/models/response/bar_information/bar_information.dart rename to packages/chicken/lib/features/common/data/model/response/bar_information/bar_information.dart diff --git a/packages/chicken/lib/data/models/response/bar_information/bar_information.freezed.dart b/packages/chicken/lib/features/common/data/model/response/bar_information/bar_information.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/bar_information/bar_information.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/bar_information/bar_information.freezed.dart diff --git a/packages/chicken/lib/data/models/response/bar_information/bar_information.g.dart b/packages/chicken/lib/features/common/data/model/response/bar_information/bar_information.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/bar_information/bar_information.g.dart rename to packages/chicken/lib/features/common/data/model/response/bar_information/bar_information.g.dart diff --git a/packages/chicken/lib/data/models/response/broadcast_price/broadcast_price.dart b/packages/chicken/lib/features/common/data/model/response/broadcast_price/broadcast_price.dart similarity index 100% rename from packages/chicken/lib/data/models/response/broadcast_price/broadcast_price.dart rename to packages/chicken/lib/features/common/data/model/response/broadcast_price/broadcast_price.dart diff --git a/packages/chicken/lib/data/models/response/broadcast_price/broadcast_price.freezed.dart b/packages/chicken/lib/features/common/data/model/response/broadcast_price/broadcast_price.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/broadcast_price/broadcast_price.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/broadcast_price/broadcast_price.freezed.dart diff --git a/packages/chicken/lib/data/models/response/broadcast_price/broadcast_price.g.dart b/packages/chicken/lib/features/common/data/model/response/broadcast_price/broadcast_price.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/broadcast_price/broadcast_price.g.dart rename to packages/chicken/lib/features/common/data/model/response/broadcast_price/broadcast_price.g.dart diff --git a/packages/chicken/lib/data/models/response/captcha/captcha_response_model.dart b/packages/chicken/lib/features/common/data/model/response/captcha/captcha_response_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/captcha/captcha_response_model.dart rename to packages/chicken/lib/features/common/data/model/response/captcha/captcha_response_model.dart diff --git a/packages/chicken/lib/data/models/response/captcha/captcha_response_model.freezed.dart b/packages/chicken/lib/features/common/data/model/response/captcha/captcha_response_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/captcha/captcha_response_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/captcha/captcha_response_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/captcha/captcha_response_model.g.dart b/packages/chicken/lib/features/common/data/model/response/captcha/captcha_response_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/captcha/captcha_response_model.g.dart rename to packages/chicken/lib/features/common/data/model/response/captcha/captcha_response_model.g.dart diff --git a/packages/chicken/lib/data/models/response/guild/guild_model.dart b/packages/chicken/lib/features/common/data/model/response/guild/guild_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/guild/guild_model.dart rename to packages/chicken/lib/features/common/data/model/response/guild/guild_model.dart diff --git a/packages/chicken/lib/data/models/response/guild/guild_model.freezed.dart b/packages/chicken/lib/features/common/data/model/response/guild/guild_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/guild/guild_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/guild/guild_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/guild/guild_model.g.dart b/packages/chicken/lib/features/common/data/model/response/guild/guild_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/guild/guild_model.g.dart rename to packages/chicken/lib/features/common/data/model/response/guild/guild_model.g.dart diff --git a/packages/chicken/lib/data/models/response/guild_profile/guild_profile.dart b/packages/chicken/lib/features/common/data/model/response/guild_profile/guild_profile.dart similarity index 100% rename from packages/chicken/lib/data/models/response/guild_profile/guild_profile.dart rename to packages/chicken/lib/features/common/data/model/response/guild_profile/guild_profile.dart diff --git a/packages/chicken/lib/data/models/response/guild_profile/guild_profile.freezed.dart b/packages/chicken/lib/features/common/data/model/response/guild_profile/guild_profile.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/guild_profile/guild_profile.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/guild_profile/guild_profile.freezed.dart diff --git a/packages/chicken/lib/data/models/response/guild_profile/guild_profile.g.dart b/packages/chicken/lib/features/common/data/model/response/guild_profile/guild_profile.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/guild_profile/guild_profile.g.dart rename to packages/chicken/lib/features/common/data/model/response/guild_profile/guild_profile.g.dart diff --git a/packages/chicken/lib/data/models/response/inventory/inventory_model.dart b/packages/chicken/lib/features/common/data/model/response/inventory/inventory_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/inventory/inventory_model.dart rename to packages/chicken/lib/features/common/data/model/response/inventory/inventory_model.dart diff --git a/packages/chicken/lib/data/models/response/inventory/inventory_model.freezed.dart b/packages/chicken/lib/features/common/data/model/response/inventory/inventory_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/inventory/inventory_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/inventory/inventory_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/inventory/inventory_model.g.dart b/packages/chicken/lib/features/common/data/model/response/inventory/inventory_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/inventory/inventory_model.g.dart rename to packages/chicken/lib/features/common/data/model/response/inventory/inventory_model.g.dart diff --git a/packages/chicken/lib/data/models/response/iran_province_city/iran_province_city_model.dart b/packages/chicken/lib/features/common/data/model/response/iran_province_city/iran_province_city_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/iran_province_city/iran_province_city_model.dart rename to packages/chicken/lib/features/common/data/model/response/iran_province_city/iran_province_city_model.dart diff --git a/packages/chicken/lib/data/models/response/iran_province_city/iran_province_city_model.freezed.dart b/packages/chicken/lib/features/common/data/model/response/iran_province_city/iran_province_city_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/iran_province_city/iran_province_city_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/iran_province_city/iran_province_city_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/iran_province_city/iran_province_city_model.g.dart b/packages/chicken/lib/features/common/data/model/response/iran_province_city/iran_province_city_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/iran_province_city/iran_province_city_model.g.dart rename to packages/chicken/lib/features/common/data/model/response/iran_province_city/iran_province_city_model.g.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart b/packages/chicken/lib/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart rename to packages/chicken/lib/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_distribution_info/kill_house_distribution_info.freezed.dart b/packages/chicken/lib/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_distribution_info/kill_house_distribution_info.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.freezed.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_distribution_info/kill_house_distribution_info.g.dart b/packages/chicken/lib/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_distribution_info/kill_house_distribution_info.g.dart rename to packages/chicken/lib/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.g.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_free_bar/kill_house_free_bar.dart b/packages/chicken/lib/features/common/data/model/response/kill_house_free_bar/kill_house_free_bar.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_free_bar/kill_house_free_bar.dart rename to packages/chicken/lib/features/common/data/model/response/kill_house_free_bar/kill_house_free_bar.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_free_bar/kill_house_free_bar.freezed.dart b/packages/chicken/lib/features/common/data/model/response/kill_house_free_bar/kill_house_free_bar.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_free_bar/kill_house_free_bar.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/kill_house_free_bar/kill_house_free_bar.freezed.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_free_bar/kill_house_free_bar.g.dart b/packages/chicken/lib/features/common/data/model/response/kill_house_free_bar/kill_house_free_bar.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_free_bar/kill_house_free_bar.g.dart rename to packages/chicken/lib/features/common/data/model/response/kill_house_free_bar/kill_house_free_bar.g.dart diff --git a/packages/chicken/lib/data/models/response/roles_products/roles_products.dart b/packages/chicken/lib/features/common/data/model/response/roles_products/roles_products.dart similarity index 100% rename from packages/chicken/lib/data/models/response/roles_products/roles_products.dart rename to packages/chicken/lib/features/common/data/model/response/roles_products/roles_products.dart diff --git a/packages/chicken/lib/data/models/response/roles_products/roles_products.freezed.dart b/packages/chicken/lib/features/common/data/model/response/roles_products/roles_products.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/roles_products/roles_products.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/roles_products/roles_products.freezed.dart diff --git a/packages/chicken/lib/data/models/response/roles_products/roles_products.g.dart b/packages/chicken/lib/features/common/data/model/response/roles_products/roles_products.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/roles_products/roles_products.g.dart rename to packages/chicken/lib/features/common/data/model/response/roles_products/roles_products.g.dart diff --git a/packages/chicken/lib/data/models/response/user_info/user_info_model.dart b/packages/chicken/lib/features/common/data/model/response/user_info/user_info_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_info/user_info_model.dart rename to packages/chicken/lib/features/common/data/model/response/user_info/user_info_model.dart diff --git a/packages/chicken/lib/data/models/response/user_info/user_info_model.freezed.dart b/packages/chicken/lib/features/common/data/model/response/user_info/user_info_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_info/user_info_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/user_info/user_info_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/user_info/user_info_model.g.dart b/packages/chicken/lib/features/common/data/model/response/user_info/user_info_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_info/user_info_model.g.dart rename to packages/chicken/lib/features/common/data/model/response/user_info/user_info_model.g.dart diff --git a/packages/chicken/lib/data/models/response/user_profile/user_profile.dart b/packages/chicken/lib/features/common/data/model/response/user_profile/user_profile.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_profile/user_profile.dart rename to packages/chicken/lib/features/common/data/model/response/user_profile/user_profile.dart diff --git a/packages/chicken/lib/data/models/response/user_profile/user_profile.freezed.dart b/packages/chicken/lib/features/common/data/model/response/user_profile/user_profile.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_profile/user_profile.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/user_profile/user_profile.freezed.dart diff --git a/packages/chicken/lib/data/models/response/user_profile/user_profile.g.dart b/packages/chicken/lib/features/common/data/model/response/user_profile/user_profile.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_profile/user_profile.g.dart rename to packages/chicken/lib/features/common/data/model/response/user_profile/user_profile.g.dart diff --git a/packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.dart b/packages/chicken/lib/features/common/data/model/response/user_profile_model/user_profile_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.dart rename to packages/chicken/lib/features/common/data/model/response/user_profile_model/user_profile_model.dart diff --git a/packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.freezed.dart b/packages/chicken/lib/features/common/data/model/response/user_profile_model/user_profile_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.freezed.dart rename to packages/chicken/lib/features/common/data/model/response/user_profile_model/user_profile_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.g.dart b/packages/chicken/lib/features/common/data/model/response/user_profile_model/user_profile_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.g.dart rename to packages/chicken/lib/features/common/data/model/response/user_profile_model/user_profile_model.g.dart diff --git a/packages/chicken/lib/data/repositories/auth/auth_repository.dart b/packages/chicken/lib/features/common/data/repositories/auth/auth_repository.dart similarity index 66% rename from packages/chicken/lib/data/repositories/auth/auth_repository.dart rename to packages/chicken/lib/features/common/data/repositories/auth/auth_repository.dart index 22d4599..444f63a 100644 --- a/packages/chicken/lib/data/repositories/auth/auth_repository.dart +++ b/packages/chicken/lib/features/common/data/repositories/auth/auth_repository.dart @@ -1,5 +1,5 @@ -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; abstract class AuthRepository { Future login({required Map authRequest}); diff --git a/packages/chicken/lib/data/repositories/auth/auth_repository_imp.dart b/packages/chicken/lib/features/common/data/repositories/auth/auth_repository_imp.dart similarity index 72% rename from packages/chicken/lib/data/repositories/auth/auth_repository_imp.dart rename to packages/chicken/lib/features/common/data/repositories/auth/auth_repository_imp.dart index 25992b2..b7ad64e 100644 --- a/packages/chicken/lib/data/repositories/auth/auth_repository_imp.dart +++ b/packages/chicken/lib/features/common/data/repositories/auth/auth_repository_imp.dart @@ -1,6 +1,6 @@ -import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote.dart'; -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; import 'auth_repository.dart'; diff --git a/packages/chicken/lib/features/common/data/repositories/common/common_repository.dart b/packages/chicken/lib/features/common/data/repositories/common/common_repository.dart new file mode 100644 index 0000000..82fb2b5 --- /dev/null +++ b/packages/chicken/lib/features/common/data/repositories/common/common_repository.dart @@ -0,0 +1,85 @@ +import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart'; +import 'package:rasadyar_core/core.dart'; + +abstract class CommonRepository { + //region Remote + Future?> getInventory({ + required String token, + CancelToken? cancelToken, + }); + + Future getKillHouseDistributionInfo({ + required String token, + }); + + Future getGeneralBarInformation({ + required String token, + Map? queryParameters, + }); + + Future?> getRolesProducts({required String token}); + + Future?> getGuilds({ + required String token, + Map? queryParameters, + }); + + Future getProfile({required String token}); + + Future?> getProvince({CancelToken? cancelToken}); + + Future?> getCity({required String provinceName}); + + Future getUserProfile({required String token}); + + Future updateUserProfile({ + required String token, + required UserProfile userProfile, + }); + + Future updatePassword({ + required String token, + required ChangePasswordRequestModel model, + }); + + Future?> getSegmentation({ + required String token, + Map? queryParameters, + }); + + Future createSegmentation({ + required String token, + required SegmentationModel model, + }); + + Future editSegmentation({ + required String token, + required SegmentationModel model, + }); + + Future deleteSegmentation({ + required String token, + required String key, + }); + + Future getBroadcastPrice({required String token}); + + //endregion + + //region local + Future initWidleyUsed(); + + WidelyUsedLocalModel? getAllWidely(); + //endregion +} diff --git a/packages/chicken/lib/features/common/data/repositories/common/common_repository_imp.dart b/packages/chicken/lib/features/common/data/repositories/common/common_repository_imp.dart new file mode 100644 index 0000000..550aab0 --- /dev/null +++ b/packages/chicken/lib/features/common/data/repositories/common/common_repository_imp.dart @@ -0,0 +1,172 @@ +import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/common/common_remote.dart'; +import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart'; +import 'package:rasadyar_core/core.dart'; + +import 'common_repository.dart'; + +class CommonRepositoryImp implements CommonRepository { + final CommonRemoteDatasource remote; + final ChickenLocalDataSource local; + + CommonRepositoryImp({required this.remote, required this.local}); + + //region Remote + @override + Future?> getInventory({ + required String token, + CancelToken? cancelToken, + }) async { + var res = await remote.getInventory(token: token, cancelToken: cancelToken); + return res; + } + + @override + Future getKillHouseDistributionInfo({ + required String token, + }) async { + var res = await remote.getKillHouseDistributionInfo(token: token); + return res; + } + + @override + Future getGeneralBarInformation({ + required String token, + Map? queryParameters, + }) async { + var res = await remote.getGeneralBarInformation( + token: token, + queryParameters: queryParameters, + ); + return res; + } + + @override + Future?> getRolesProducts({required String token}) async { + var res = await remote.getRolesProducts(token: token); + return res; + } + + @override + Future?> getGuilds({ + required String token, + Map? queryParameters, + }) async { + var res = await remote.getGuilds( + token: token, + queryParameters: queryParameters, + ); + return res; + } + + @override + Future getProfile({required String token}) async { + var res = await remote.getProfile(token: token); + return res; + } + + @override + Future?> getCity({ + required String provinceName, + }) async { + var res = await remote.getCity(provinceName: provinceName); + return res; + } + + @override + Future?> getProvince({ + CancelToken? cancelToken, + }) async { + var res = await remote.getProvince(cancelToken: cancelToken); + return res; + } + + @override + Future getUserProfile({required String token}) async { + var res = await remote.getUserProfile(token: token); + return res; + } + + @override + Future updateUserProfile({ + required String token, + required UserProfile userProfile, + }) async { + await remote.updateUserProfile(token: token, userProfile: userProfile); + } + + @override + Future updatePassword({ + required String token, + required ChangePasswordRequestModel model, + }) async { + await remote.updatePassword(token: token, model: model); + } + + @override + Future?> getSegmentation({ + required String token, + Map? queryParameters, + }) async { + var res = await remote.getSegmentation( + token: token, + queryParameters: queryParameters, + ); + return res; + } + + @override + Future createSegmentation({ + required String token, + required SegmentationModel model, + }) async { + await remote.createSegmentation(token: token, model: model); + } + + @override + Future editSegmentation({ + required String token, + required SegmentationModel model, + }) async { + await remote.editSegmentation(token: token, model: model); + } + + @override + Future deleteSegmentation({ + required String token, + required String key, + }) async { + var res = await remote.deleteSegmentation(token: token, key: key); + return res; + } + + @override + Future getBroadcastPrice({required String token}) async { + var res = await remote.getBroadcastPrice(token: token); + return res; + } + + //endregion + + //region local + @override + WidelyUsedLocalModel? getAllWidely() => local.getAllWidely(); + + @override + Future initWidleyUsed() async { + await local.initWidleyUsed(); + } + + //endregion +} diff --git a/packages/chicken/lib/features/common/presentation/page/auth/logic.dart b/packages/chicken/lib/features/common/presentation/page/auth/logic.dart index e8a515a..6577ddf 100644 --- a/packages/chicken/lib/features/common/presentation/page/auth/logic.dart +++ b/packages/chicken/lib/features/common/presentation/page/auth/logic.dart @@ -4,9 +4,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/data/common/dio_error_handler.dart'; import 'package:rasadyar_chicken/data/di/chicken_di.dart'; -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; -import 'package:rasadyar_chicken/data/repositories/auth/auth_repository.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/auth/auth_repository.dart'; import 'package:rasadyar_chicken/features/common/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/presentation/widget/captcha/logic.dart'; diff --git a/packages/chicken/lib/features/common/presentation/page/profile/logic.dart b/packages/chicken/lib/features/common/presentation/page/profile/logic.dart index dc8447b..bb3c95c 100644 --- a/packages/chicken/lib/features/common/presentation/page/profile/logic.dart +++ b/packages/chicken/lib/features/common/presentation/page/profile/logic.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/data/di/chicken_di.dart'; -import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; -import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart'; +import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository.dart'; import 'package:rasadyar_core/core.dart'; class ProfileLogic extends GetxController { - ChickenRepository chickenRepository = diChicken.get(); + CommonRepository commonRepository = diChicken.get(); GService gService = Get.find(); TokenStorageService tokenService = Get.find(); RxInt selectedInformationType = 0.obs; @@ -79,11 +79,10 @@ class ProfileLogic extends GetxController { }); } - Future getUserProfile() async { userProfile.value = Resource.loading(); await safeCall( - call: () async => await chickenRepository.getUserProfile( + call: () async => await commonRepository.getUserProfile( token: tokenService.accessToken.value!, ), onSuccess: (result) { @@ -97,7 +96,7 @@ class ProfileLogic extends GetxController { Future getCites() async { await safeCall( - call: () => chickenRepository.getCity( + call: () => commonRepository.getCity( provinceName: selectedProvince.value?.name ?? '', ), onSuccess: (result) { @@ -124,7 +123,7 @@ class ProfileLogic extends GetxController { ); isOnLoading.value = true; await safeCall( - call: () async => await chickenRepository.updateUserProfile( + call: () async => await commonRepository.updateUserProfile( token: tokenService.accessToken.value!, userProfile: userProfile, ), @@ -145,7 +144,7 @@ class ProfileLogic extends GetxController { ); await safeCall( - call: () async => await chickenRepository.updatePassword( + call: () async => await commonRepository.updatePassword( token: tokenService.accessToken.value!, model: model, ), diff --git a/packages/chicken/lib/features/common/presentation/page/profile/view.dart b/packages/chicken/lib/features/common/presentation/page/profile/view.dart index 6db6aa2..3733519 100644 --- a/packages/chicken/lib/features/common/presentation/page/profile/view.dart +++ b/packages/chicken/lib/features/common/presentation/page/profile/view.dart @@ -4,7 +4,7 @@ import 'package:flutter/cupertino.dart' hide Image; import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/data/common/fa_user_role.dart'; import 'package:rasadyar_chicken/data/di/chicken_di.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart'; import 'package:rasadyar_core/core.dart'; import 'logic.dart'; diff --git a/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/local/poultry_farm_local_data_source.dart b/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/local/poultry_farm_local_data_source.dart index a5c14a3..8a77734 100644 --- a/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/local/poultry_farm_local_data_source.dart +++ b/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/local/poultry_farm_local_data_source.dart @@ -1,3 +1,5 @@ abstract class PoultryFarmLocalDataSource { // TODO: Implement local data source methods } + + diff --git a/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/remote/poultry_farm_remote_data_source.dart b/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/remote/poultry_farm_remote_data_source.dart index 2197973..7614630 100644 --- a/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/remote/poultry_farm_remote_data_source.dart +++ b/packages/chicken/lib/features/poultry_farm_inspection/data/datasources/remote/poultry_farm_remote_data_source.dart @@ -1,3 +1,5 @@ abstract class PoultryFarmRemoteDataSource { Future getPoultryFarms(); } + + diff --git a/packages/chicken/lib/features/poultry_farm_inspection/data/models/.gitkeep b/packages/chicken/lib/features/poultry_farm_inspection/data/models/.gitkeep index e69de29..b28b04f 100644 --- a/packages/chicken/lib/features/poultry_farm_inspection/data/models/.gitkeep +++ b/packages/chicken/lib/features/poultry_farm_inspection/data/models/.gitkeep @@ -0,0 +1,3 @@ + + + diff --git a/packages/chicken/lib/features/poultry_farm_inspection/data/repositories/poultry_farm_repository.dart b/packages/chicken/lib/features/poultry_farm_inspection/data/repositories/poultry_farm_repository.dart index dcfba12..3a1aa5e 100644 --- a/packages/chicken/lib/features/poultry_farm_inspection/data/repositories/poultry_farm_repository.dart +++ b/packages/chicken/lib/features/poultry_farm_inspection/data/repositories/poultry_farm_repository.dart @@ -1,3 +1,5 @@ abstract class PoultryFarmRepository { // TODO: Implement repository interface } + + diff --git a/packages/chicken/lib/features/poultry_farm_inspection/domain/.gitkeep b/packages/chicken/lib/features/poultry_farm_inspection/domain/.gitkeep index e69de29..b28b04f 100644 --- a/packages/chicken/lib/features/poultry_farm_inspection/domain/.gitkeep +++ b/packages/chicken/lib/features/poultry_farm_inspection/domain/.gitkeep @@ -0,0 +1,3 @@ + + + diff --git a/packages/chicken/lib/features/poultry_farm_inspection/presentation/.gitkeep b/packages/chicken/lib/features/poultry_farm_inspection/presentation/.gitkeep index e69de29..b28b04f 100644 --- a/packages/chicken/lib/features/poultry_farm_inspection/presentation/.gitkeep +++ b/packages/chicken/lib/features/poultry_farm_inspection/presentation/.gitkeep @@ -0,0 +1,3 @@ + + + diff --git a/packages/chicken/lib/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart b/packages/chicken/lib/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart index 06a52fe..0b1c805 100644 --- a/packages/chicken/lib/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart +++ b/packages/chicken/lib/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart @@ -1,3 +1,92 @@ +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/approved_price/approved_price.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_export/poultry_export.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/request/kill_registration/kill_registration.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart'; +import 'package:rasadyar_core/core.dart'; + abstract class PoultryScienceRemoteDataSource { - Future getPoultryScience(); + Future getHomePoultryScience({ + required String token, + required String type, + }); + + Future?> getHatchingPoultry({ + required String token, + Map? queryParameters, + }); + + Future submitPoultryScienceReport({ + required String token, + required FormData data, + ProgressCallback? onSendProgress, + }); + + Future?> getPoultryScienceReport({ + required String token, + Map? queryParameters, + }); + + Future?> getPoultryScienceFarmList({ + required String token, + Map? queryParameters, + }); + + Future getApprovedPrice({ + required String token, + Map? queryParameters, + }); + + Future?> getAllPoultry({ + required String token, + Map? queryParameters, + }); + + Future getSellForFreezing({ + required String token, + Map? queryParameters, + }); + + Future getPoultryExport({ + required String token, + Map? queryParameters, + }); + + Future?> getUserPoultry({ + required String token, + Map? queryParameters, + }); + + Future?> getPoultryHatching({ + required String token, + Map? queryParameters, + }); + + Future?> getKillHouseList({ + required String token, + Map? queryParameters, + }); + + Future submitKillRegistration({ + required String token, + required KillRegistrationRequest request, + }); + + Future?> getPoultryOderList({ + required String token, + Map? queryParameters, + }); + + Future deletePoultryOder({ + required String token, + required String orderId, + }); } diff --git a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart b/packages/chicken/lib/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source_impl.dart similarity index 72% rename from packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart rename to packages/chicken/lib/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source_impl.dart index a201d6f..6d43e36 100644 --- a/packages/chicken/lib/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart +++ b/packages/chicken/lib/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source_impl.dart @@ -1,24 +1,24 @@ -import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart'; -import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart'; -import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart'; -import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/approved_price/approved_price.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_export/poultry_export.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/request/kill_registration/kill_registration.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart'; import 'package:rasadyar_core/core.dart'; -import 'poultry_science_remote.dart'; - -class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasource { +class PoultryScienceRemoteDataSourceImpl + implements PoultryScienceRemoteDataSource { final DioRemote _httpClient; - PoultryScienceRemoteDatasourceImp(this._httpClient); + PoultryScienceRemoteDataSourceImpl(this._httpClient); @override Future getHomePoultryScience({ @@ -124,8 +124,9 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc '/get-all-poultry/', headers: {'Authorization': 'Bearer $token'}, queryParameters: queryParameters, - fromJsonList: (json) => - json.map((e) => AllPoultry.fromJson(e as Map)).toList(), + fromJsonList: (json) => json + .map((e) => AllPoultry.fromJson(e as Map)) + .toList(), ); return res.data; } @@ -167,7 +168,8 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc '/Poultry/', headers: {'Authorization': 'Bearer $token'}, queryParameters: queryParameters, - fromJsonList: (json) => json.map((e) => KillRequestPoultry.fromJson(e)).toList(), + fromJsonList: (json) => + json.map((e) => KillRequestPoultry.fromJson(e)).toList(), ); return res.data; } @@ -181,7 +183,8 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc '/poultry_hatching/', headers: {'Authorization': 'Bearer $token'}, queryParameters: queryParameters, - fromJsonList: (json) => json.map((e) => PoultryHatching.fromJson(e)).toList(), + fromJsonList: (json) => + json.map((e) => PoultryHatching.fromJson(e)).toList(), ); return res.data; } @@ -195,7 +198,8 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc '/kill_house_list/', headers: {'Authorization': 'Bearer $token'}, queryParameters: queryParameters, - fromJsonList: (json) => json.map((e) => KillHousePoultry.fromJson(e)).toList(), + fromJsonList: (json) => + json.map((e) => KillHousePoultry.fromJson(e)).toList(), ); return res.data; } @@ -231,7 +235,10 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc } @override - Future deletePoultryOder({required String token, required String orderId}) async { + Future deletePoultryOder({ + required String token, + required String orderId, + }) async { await _httpClient.delete( '/Poultry_Request/$orderId/', headers: {'Authorization': 'Bearer $token'}, diff --git a/packages/chicken/lib/features/poultry_science/data/di/poultry_science_di.dart b/packages/chicken/lib/features/poultry_science/data/di/poultry_science_di.dart new file mode 100644 index 0000000..b91c006 --- /dev/null +++ b/packages/chicken/lib/features/poultry_science/data/di/poultry_science_di.dart @@ -0,0 +1,38 @@ +import 'package:rasadyar_chicken/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source_impl.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository_impl.dart'; +import 'package:rasadyar_core/core.dart'; + +/// Setup dependency injection for poultry_science feature +Future setupPoultryScienceDI(GetIt di, DioRemote dioRemote) async { + di.registerLazySingleton( + () => PoultryScienceRemoteDataSourceImpl(dioRemote), + ); + + di.registerLazySingleton( + () => + PoultryScienceRepositoryImpl(di.get()), + ); +} + +/// Re-register poultry_science dependencies (used when base URL changes) +Future reRegisterPoultryScienceDI(GetIt di, DioRemote dioRemote) async { + await reRegister(di, () => PoultryScienceRemoteDataSourceImpl(dioRemote)); + await reRegister( + di, + () => + PoultryScienceRepositoryImpl(di.get()), + ); +} + +/// Helper function to re-register a dependency +Future reRegister( + GetIt di, + T Function() factory, +) async { + if (di.isRegistered()) { + await di.unregister(); + } + di.registerLazySingleton(factory); +} diff --git a/packages/chicken/lib/data/models/request/kill_registration/kill_registration.dart b/packages/chicken/lib/features/poultry_science/data/model/request/kill_registration/kill_registration.dart similarity index 100% rename from packages/chicken/lib/data/models/request/kill_registration/kill_registration.dart rename to packages/chicken/lib/features/poultry_science/data/model/request/kill_registration/kill_registration.dart diff --git a/packages/chicken/lib/data/models/request/kill_registration/kill_registration.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/request/kill_registration/kill_registration.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/kill_registration/kill_registration.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/request/kill_registration/kill_registration.freezed.dart diff --git a/packages/chicken/lib/data/models/request/kill_registration/kill_registration.g.dart b/packages/chicken/lib/features/poultry_science/data/model/request/kill_registration/kill_registration.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/kill_registration/kill_registration.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/request/kill_registration/kill_registration.g.dart diff --git a/packages/chicken/lib/data/models/response/all_poultry/all_poultry.dart b/packages/chicken/lib/features/poultry_science/data/model/response/all_poultry/all_poultry.dart similarity index 100% rename from packages/chicken/lib/data/models/response/all_poultry/all_poultry.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/all_poultry/all_poultry.dart diff --git a/packages/chicken/lib/data/models/response/all_poultry/all_poultry.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/all_poultry/all_poultry.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/all_poultry/all_poultry.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/all_poultry/all_poultry.freezed.dart diff --git a/packages/chicken/lib/data/models/response/all_poultry/all_poultry.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/all_poultry/all_poultry.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/all_poultry/all_poultry.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/all_poultry/all_poultry.g.dart diff --git a/packages/chicken/lib/data/models/response/approved_price/approved_price.dart b/packages/chicken/lib/features/poultry_science/data/model/response/approved_price/approved_price.dart similarity index 100% rename from packages/chicken/lib/data/models/response/approved_price/approved_price.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/approved_price/approved_price.dart diff --git a/packages/chicken/lib/data/models/response/approved_price/approved_price.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/approved_price/approved_price.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/approved_price/approved_price.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/approved_price/approved_price.freezed.dart diff --git a/packages/chicken/lib/data/models/response/approved_price/approved_price.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/approved_price/approved_price.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/approved_price/approved_price.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/approved_price/approved_price.g.dart diff --git a/packages/chicken/lib/data/models/response/hatching/hatching_models.dart b/packages/chicken/lib/features/poultry_science/data/model/response/hatching/hatching_models.dart similarity index 100% rename from packages/chicken/lib/data/models/response/hatching/hatching_models.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/hatching/hatching_models.dart diff --git a/packages/chicken/lib/data/models/response/hatching/hatching_models.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/hatching/hatching_models.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/hatching/hatching_models.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/hatching/hatching_models.freezed.dart diff --git a/packages/chicken/lib/data/models/response/hatching/hatching_models.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/hatching/hatching_models.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/hatching/hatching_models.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/hatching/hatching_models.g.dart diff --git a/packages/chicken/lib/data/models/response/hatching_report/hatching_report.dart b/packages/chicken/lib/features/poultry_science/data/model/response/hatching_report/hatching_report.dart similarity index 100% rename from packages/chicken/lib/data/models/response/hatching_report/hatching_report.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/hatching_report/hatching_report.dart diff --git a/packages/chicken/lib/data/models/response/hatching_report/hatching_report.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/hatching_report/hatching_report.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/hatching_report/hatching_report.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/hatching_report/hatching_report.freezed.dart diff --git a/packages/chicken/lib/data/models/response/hatching_report/hatching_report.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/hatching_report/hatching_report.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/hatching_report/hatching_report.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/hatching_report/hatching_report.g.dart diff --git a/packages/chicken/lib/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart b/packages/chicken/lib/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart diff --git a/packages/chicken/lib/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.g.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_poultry/kill_house_poultry.dart b/packages/chicken/lib/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_poultry/kill_house_poultry.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_poultry/kill_house_poultry.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_poultry/kill_house_poultry.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.freezed.dart diff --git a/packages/chicken/lib/data/models/response/kill_house_poultry/kill_house_poultry.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_house_poultry/kill_house_poultry.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.g.dart diff --git a/packages/chicken/lib/data/models/response/kill_request_poultry/kill_request_poultry.dart b/packages/chicken/lib/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_request_poultry/kill_request_poultry.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart diff --git a/packages/chicken/lib/data/models/response/kill_request_poultry/kill_request_poultry.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_request_poultry/kill_request_poultry.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.freezed.dart diff --git a/packages/chicken/lib/data/models/response/kill_request_poultry/kill_request_poultry.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/kill_request_poultry/kill_request_poultry.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.g.dart diff --git a/packages/chicken/lib/data/models/poultry_export/poultry_export.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_export/poultry_export.dart similarity index 100% rename from packages/chicken/lib/data/models/poultry_export/poultry_export.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_export/poultry_export.dart diff --git a/packages/chicken/lib/data/models/poultry_export/poultry_export.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_export/poultry_export.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/poultry_export/poultry_export.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_export/poultry_export.freezed.dart diff --git a/packages/chicken/lib/data/models/poultry_export/poultry_export.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_export/poultry_export.g.dart similarity index 100% rename from packages/chicken/lib/data/models/poultry_export/poultry_export.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_export/poultry_export.g.dart diff --git a/packages/chicken/lib/data/models/response/poultry_farm/poultry_farm.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_farm/poultry_farm.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart diff --git a/packages/chicken/lib/data/models/response/poultry_farm/poultry_farm.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_farm/poultry_farm.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_farm/poultry_farm.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_farm/poultry_farm.freezed.dart diff --git a/packages/chicken/lib/data/models/response/poultry_farm/poultry_farm.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_farm/poultry_farm.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_farm/poultry_farm.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_farm/poultry_farm.g.dart diff --git a/packages/chicken/lib/data/models/response/poultry_hatching/poultry_hatching.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_hatching/poultry_hatching.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart diff --git a/packages/chicken/lib/data/models/response/poultry_hatching/poultry_hatching.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_hatching/poultry_hatching.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.freezed.dart diff --git a/packages/chicken/lib/data/models/response/poultry_hatching/poultry_hatching.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_hatching/poultry_hatching.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.g.dart diff --git a/packages/chicken/lib/data/models/response/poultry_order/poultry_order.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_order/poultry_order.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_order/poultry_order.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_order/poultry_order.dart diff --git a/packages/chicken/lib/data/models/response/poultry_order/poultry_order.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_order/poultry_order.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_order/poultry_order.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_order/poultry_order.freezed.dart diff --git a/packages/chicken/lib/data/models/response/poultry_order/poultry_order.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/poultry_order/poultry_order.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/poultry_order/poultry_order.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/poultry_order/poultry_order.g.dart diff --git a/packages/chicken/lib/data/models/response/sell_for_freezing/sell_for_freezing.dart b/packages/chicken/lib/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart similarity index 100% rename from packages/chicken/lib/data/models/response/sell_for_freezing/sell_for_freezing.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart diff --git a/packages/chicken/lib/data/models/response/sell_for_freezing/sell_for_freezing.freezed.dart b/packages/chicken/lib/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/sell_for_freezing/sell_for_freezing.freezed.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.freezed.dart diff --git a/packages/chicken/lib/data/models/response/sell_for_freezing/sell_for_freezing.g.dart b/packages/chicken/lib/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/sell_for_freezing/sell_for_freezing.g.dart rename to packages/chicken/lib/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.g.dart diff --git a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository.dart b/packages/chicken/lib/features/poultry_science/data/repositories/poultry_science_repository.dart similarity index 50% rename from packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository.dart rename to packages/chicken/lib/features/poultry_science/data/repositories/poultry_science_repository.dart index f1546fc..2d2669b 100644 --- a/packages/chicken/lib/data/repositories/poultry_science/poultry_science_repository.dart +++ b/packages/chicken/lib/features/poultry_science/data/repositories/poultry_science_repository.dart @@ -1,34 +1,35 @@ -import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart'; -import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart'; -import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart'; -import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/approved_price/approved_price.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_export/poultry_export.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/request/kill_registration/kill_registration.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart'; import 'package:rasadyar_core/core.dart'; abstract class PoultryScienceRepository { - Future getHomePoultry({required String token, required String type}); + Future getHomePoultry({ + required String token, + required String type, + }); Future?> getHatchingPoultry({ required String token, Map? queryParameters, }); - Future submitPoultryScienceReport({ required String token, required FormData data, ProgressCallback? onSendProgress, }); - Future?> getHatchingPoultryReport({ required String token, Map? queryParameters, @@ -39,22 +40,21 @@ abstract class PoultryScienceRepository { Map? queryParameters, }); - Future getApprovedPrice({ required String token, - Map? queryParameters,}); - + Future getApprovedPrice({ + required String token, + Map? queryParameters, + }); Future?> getAllPoultry({ required String token, Map? queryParameters, }); - Future getSellForFreezing({ required String token, Map? queryParameters, }); - Future getPoultryExport({ required String token, Map? queryParameters, @@ -84,6 +84,7 @@ abstract class PoultryScienceRepository { required String token, Map? queryParameters, }); + Future deletePoultryOder({ required String token, required String orderId, diff --git a/packages/chicken/lib/features/poultry_science/data/repositories/poultry_science_repository_impl.dart b/packages/chicken/lib/features/poultry_science/data/repositories/poultry_science_repository_impl.dart new file mode 100644 index 0000000..5348969 --- /dev/null +++ b/packages/chicken/lib/features/poultry_science/data/repositories/poultry_science_repository_impl.dart @@ -0,0 +1,183 @@ +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/approved_price/approved_price.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_export/poultry_export.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/request/kill_registration/kill_registration.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository.dart'; +import 'package:rasadyar_core/core.dart'; + +class PoultryScienceRepositoryImpl implements PoultryScienceRepository { + final PoultryScienceRemoteDataSource _dataSource; + + PoultryScienceRepositoryImpl(this._dataSource); + + @override + Future getHomePoultry({ + required String token, + required String type, + }) async { + return await _dataSource.getHomePoultryScience(token: token, type: type); + } + + @override + Future?> getHatchingPoultry({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getHatchingPoultry( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future submitPoultryScienceReport({ + required String token, + required FormData data, + ProgressCallback? onSendProgress, + }) async { + return await _dataSource.submitPoultryScienceReport( + token: token, + data: data, + onSendProgress: onSendProgress, + ); + } + + @override + Future?> getHatchingPoultryReport({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getPoultryScienceReport( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future?> getPoultryScienceFarmList({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getPoultryScienceFarmList( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future getApprovedPrice({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getApprovedPrice( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future?> getAllPoultry({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getAllPoultry( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future getSellForFreezing({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getSellForFreezing( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future getPoultryExport({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getPoultryExport( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future?> getUserPoultry({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getUserPoultry( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future?> getPoultryHatching({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getPoultryHatching( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future?> getKillHouseList({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getKillHouseList( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future submitKillRegistration({ + required String token, + required KillRegistrationRequest request, + }) async { + return await _dataSource.submitKillRegistration( + token: token, + request: request, + ); + } + + @override + Future?> getPoultryOderList({ + required String token, + Map? queryParameters, + }) async { + return await _dataSource.getPoultryOderList( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future deletePoultryOder({ + required String token, + required String orderId, + }) async { + return await _dataSource.deletePoultryOder(token: token, orderId: orderId); + } +} diff --git a/packages/chicken/lib/features/poultry_science/poultry_science.dart b/packages/chicken/lib/features/poultry_science/poultry_science.dart index 7aa6fff..8670542 100644 --- a/packages/chicken/lib/features/poultry_science/poultry_science.dart +++ b/packages/chicken/lib/features/poultry_science/poultry_science.dart @@ -1,2 +1,3 @@ +export 'data/di/poultry_science_di.dart'; export 'presentation/routes/routes.dart'; export 'presentation/routes/pages.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/logic.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/logic.dart index 7cda147..69fbe0c 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/logic.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/logic.dart @@ -1,10 +1,12 @@ -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; class ActiveHatchingLogic extends GetxController { PoultryScienceRootLogic rootLogic = Get.find(); BaseLogic baseLogic = Get.find(); + late PoultryScienceRepository poultryScienceRepository; Rx>> activeHatchingList = Resource>.loading().obs; @@ -17,6 +19,12 @@ class ActiveHatchingLogic extends GetxController { Rx toDateFilter = Jalali.now().obs; RxnString searchedValue = RxnString(); + @override + void onInit() { + super.onInit(); + poultryScienceRepository = Get.find(); + } + @override void onReady() { super.onReady(); @@ -44,7 +52,7 @@ class ActiveHatchingLogic extends GetxController { } safeCall( - call: () async => await rootLogic.poultryRepository.getHatchingPoultry( + call: () async => await poultryScienceRepository.getHatchingPoultry( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( queryParams: {'type': 'hatching'}, diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/view.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/view.dart index 781c02b..18af948 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/view.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/active_hatching/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/active_hatching/logic.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/farm/logic.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/farm/logic.dart index e748150..222b38a 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/farm/logic.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/farm/logic.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/home/logic.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/farm/view.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/farm/view.dart index 8292434..72fdc2e 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/farm/view.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/farm/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/filter_bottom_sheet.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/logic.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/logic.dart index 09c9a7e..0f85b8b 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/logic.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/logic.dart @@ -1,4 +1,4 @@ -import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/killing_registration/logic.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/view.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/view.dart index 4676b2e..2eb8a6e 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/view.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/genocide/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/killing_registration/view.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/home/logic.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/home/logic.dart index 1a60324..e946f2f 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/home/logic.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/home/logic.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/presentation/widget/custom/information_card_widget.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/logic.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/logic.dart index d4acbf1..11f7a24 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/logic.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/logic.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/view.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/view.dart index 07149c4..28a92ca 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/view.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/inspection/view.dart @@ -1,8 +1,8 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/logic.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/logic.dart index ded13ab..ab3a33b 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/logic.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/logic.dart @@ -1,12 +1,12 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart'; -import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart'; -import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; -import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_export/poultry_export.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/request/kill_registration/kill_registration.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/approved_price/approved_price.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/genocide/logic.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/view.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/view.dart index 1a6067d..a7a3cac 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/view.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/killing_registration/view.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart'; import 'package:rasadyar_core/core.dart'; import 'logic.dart'; diff --git a/packages/chicken/lib/features/poultry_science/presentation/pages/root/logic.dart b/packages/chicken/lib/features/poultry_science/presentation/pages/root/logic.dart index ef4d1bb..5986a29 100644 --- a/packages/chicken/lib/features/poultry_science/presentation/pages/root/logic.dart +++ b/packages/chicken/lib/features/poultry_science/presentation/pages/root/logic.dart @@ -1,12 +1,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:rasadyar_chicken/data/di/chicken_di.dart'; -import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository.dart'; +import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/pages/home/view.dart'; import 'package:rasadyar_chicken/features/common/presentation/page/profile/view.dart'; import 'package:rasadyar_chicken/presentation/routes/pages.dart'; import 'package:rasadyar_chicken/features/poultry_science/presentation/routes/routes.dart'; -import 'package:rasadyar_chicken/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/utils/utils.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source.dart b/packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source.dart new file mode 100644 index 0000000..26ab0c6 --- /dev/null +++ b/packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source.dart @@ -0,0 +1,138 @@ +import 'package:rasadyar_chicken/features/steward/data/model/request/conform_allocation/conform_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/allocated_made/allocated_made.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/imported_loads_model/imported_loads_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; +import 'package:rasadyar_core/data/model/pagination_model/pagination_model.dart'; + +abstract class StewardRemoteDataSource { + Future?> getWaitingArrivals({ + required String token, + Map? queryParameters, + }); + + Future setSateForArrivals({ + required String token, + required Map request, + }); + + Future?> getImportedLoadsModel({ + required String token, + Map? queryParameters, + }); + + Future?> getAllocatedMade({ + required String token, + Map? queryParameters, + }); + + Future confirmAllocation({ + required String token, + required Map allocation, + }); + + Future denyAllocation({ + required String token, + required String allocationToken, + }); + + Future confirmAllAllocation({ + required String token, + required List allocationTokens, + }); + + Future postSubmitStewardAllocation({ + required String token, + required SubmitStewardAllocation request, + }); + + Future deleteStewardAllocation({ + required String token, + Map? queryParameters, + }); + + Future updateStewardAllocation({ + required String token, + required ConformAllocation request, + }); + + Future getStewardDashboard({ + required String token, + required String stratDate, + required String endDate, + }); + + Future getDashboardKillHouseFreeBar({ + required String token, + required String stratDate, + required String endDate, + }); + + Future?> + getStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }); + + Future createStewardPurchasesOutSideOfTheProvince({ + required String token, + required CreateStewardFreeBar body, + }); + + Future deleteStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }); + + Future editStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }); + + Future?> + getOutProvinceCarcassesBuyer({ + required String token, + Map? queryParameters, + }); + + Future createOutProvinceCarcassesBuyer({ + required String token, + required OutProvinceCarcassesBuyer body, + }); + + Future?> getStewardFreeSaleBar({ + required String token, + Map? queryParameters, + }); + + Future createOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }); + + Future updateOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }); + + Future deleteOutProvinceStewardFreeBar({ + required String token, + required String key, + }); + + Future getStewardSalesInfoDashboard({ + required String token, + Map? queryParameters, + }); + + Future getStewardRemainWeight({required String token}); +} diff --git a/packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source_impl.dart b/packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source_impl.dart new file mode 100644 index 0000000..54ceab5 --- /dev/null +++ b/packages/chicken/lib/features/steward/data/datasources/remote/steward_remote_data_source_impl.dart @@ -0,0 +1,358 @@ +import 'package:rasadyar_chicken/features/steward/data/datasources/remote/steward_remote_data_source.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/conform_allocation/conform_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/allocated_made/allocated_made.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/imported_loads_model/imported_loads_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; +import 'package:rasadyar_core/data/model/pagination_model/pagination_model.dart'; +import 'package:rasadyar_core/infrastructure/remote/dio_remote.dart'; + +class StewardRemoteDataSourceImpl implements StewardRemoteDataSource { + final DioRemote _httpClient; + + StewardRemoteDataSourceImpl(this._httpClient); + + @override + Future?> getWaitingArrivals({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/steward-allocation/', + headers: {'Authorization': 'Bearer $token'}, + queryParameters: queryParameters, + fromJson: (json) => PaginationModel.fromJson( + json, + (json) => WaitingArrivalModel.fromJson(json as Map), + ), + ); + return res.data; + } + + @override + Future setSateForArrivals({ + required String token, + required Map request, + }) async { + await _httpClient.put( + '/steward-allocation/0/', + headers: {'Authorization': 'Bearer $token'}, + data: request, + ); + } + + @override + Future?> getImportedLoadsModel({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/steward-allocation/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => PaginationModel.fromJson( + json, + (data) => ImportedLoadsModel.fromJson(data as Map), + ), + ); + return res.data; + } + + @override + Future?> getAllocatedMade({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/steward-allocation/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => PaginationModel.fromJson( + json, + (json) => AllocatedMadeModel.fromJson(json as Map), + ), + ); + return res.data; + } + + @override + Future confirmAllocation({ + required String token, + required Map allocation, + }) async { + await _httpClient.put( + '/steward-allocation/0/', + headers: {'Authorization': 'Bearer $token'}, + data: allocation, + ); + } + + @override + Future denyAllocation({ + required String token, + required String allocationToken, + }) async { + await _httpClient.delete( + '/steward-allocation/0/?steward_allocation_key=$allocationToken', + headers: {'Authorization': 'Bearer $token'}, + ); + } + + @override + Future confirmAllAllocation({ + required String token, + required List allocationTokens, + }) async { + await _httpClient.put( + '/steward-allocation/0/', + headers: {'Authorization': 'Bearer $token'}, + data: {'steward_allocation_list': allocationTokens}, + ); + } + + @override + Future postSubmitStewardAllocation({ + required String token, + required SubmitStewardAllocation request, + }) async { + await _httpClient.post( + '/steward-allocation/', + headers: {'Authorization': 'Bearer $token'}, + data: request.toJson(), + ); + } + + @override + Future deleteStewardAllocation({ + required String token, + Map? queryParameters, + }) async { + await _httpClient.delete( + '/steward-allocation/0/', + headers: {'Authorization': 'Bearer $token'}, + queryParameters: queryParameters, + ); + } + + @override + Future updateStewardAllocation({ + required String token, + required ConformAllocation request, + }) async { + await _httpClient.put( + '/steward-allocation/0/', + headers: {'Authorization': 'Bearer $token'}, + data: request.toJson(), + ); + } + + @override + Future getStewardDashboard({ + required String token, + required String stratDate, + required String endDate, + }) async { + var res = await _httpClient.get( + '/steward_free_bar_dashboard/?date1=$stratDate&date2=$endDate&search=filter', + headers: {'Authorization': 'Bearer $token'}, + fromJson: StewardFreeBarDashboard.fromJson, + ); + return res.data; + } + + @override + Future getDashboardKillHouseFreeBar({ + required String token, + required String stratDate, + required String endDate, + }) async { + var res = await _httpClient.get( + '/dashboard_kill_house_free_bar/?date1=$stratDate&date2=$endDate&search=filter', + headers: {'Authorization': 'Bearer $token'}, + fromJson: DashboardKillHouseFreeBar.fromJson, + ); + return res.data; + } + + @override + Future?> + getStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/steward_free_bar/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => PaginationModel.fromJson( + json, + (json) => StewardFreeBar.fromJson(json as Map), + ), + ); + return res.data; + } + + @override + Future createStewardPurchasesOutSideOfTheProvince({ + required String token, + required CreateStewardFreeBar body, + }) async { + await _httpClient.post( + '/steward_free_bar/', + headers: {'Authorization': 'Bearer $token'}, + data: body.toJson()..removeWhere((key, value) => value == null), + ); + } + + @override + Future editStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }) async { + var data = await _httpClient.put( + '/steward_free_bar/0/', + headers: {'Authorization': 'Bearer $token'}, + data: queryParameters, + fromJson: CreateStewardFreeBar.fromJson, + ); + return data.data; + } + + @override + Future deleteStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }) async { + await _httpClient.delete( + '/steward_free_bar/0/', + headers: {'Authorization': 'Bearer $token'}, + queryParameters: queryParameters, + ); + } + + @override + Future?> + getOutProvinceCarcassesBuyer({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/out-province-carcasses-buyer/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => PaginationModel.fromJson( + json, + (json) => + OutProvinceCarcassesBuyer.fromJson(json as Map), + ), + ); + return res.data; + } + + @override + Future createOutProvinceCarcassesBuyer({ + required String token, + required OutProvinceCarcassesBuyer body, + }) async { + await _httpClient.post( + '/out-province-carcasses-buyer/', + data: body.toJson()..removeWhere((key, value) => value == null), + headers: {'Authorization': 'Bearer $token'}, + ); + } + + @override + Future?> getStewardFreeSaleBar({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/steward_free_sale_bar/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => PaginationModel.fromJson( + json, + (json) => StewardFreeSaleBar.fromJson(json as Map), + ), + ); + return res.data; + } + + @override + Future createOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }) async { + await _httpClient.post( + '/steward_free_sale_bar/', + data: body.toJson()..removeWhere((key, value) => value == null), + headers: {'Authorization': 'Bearer $token'}, + ); + } + + @override + Future updateOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }) async { + await _httpClient.put( + '/steward_free_sale_bar/0/', + data: body.toJson() + ..removeWhere((key, value) => value == null) + ..addAll({ + 'carcassWeight': body.weightOfCarcasses, + 'carcassCount': body.numberOfCarcasses, + }), + headers: {'Authorization': 'Bearer $token'}, + ); + } + + @override + Future deleteOutProvinceStewardFreeBar({ + required String token, + required String key, + }) async { + await _httpClient.delete( + '/steward_free_sale_bar/0/', + queryParameters: {'key': key}, + headers: {'Authorization': 'Bearer $token'}, + ); + } + + @override + Future getStewardSalesInfoDashboard({ + required String token, + Map? queryParameters, + }) async { + var res = await _httpClient.get( + '/steward-sales-info-dashboard/', + queryParameters: queryParameters, + headers: {'Authorization': 'Bearer $token'}, + fromJson: (json) => StewardSalesInfoDashboard.fromJson(json), + ); + + return res.data; + } + + @override + Future getStewardRemainWeight({ + required String token, + }) async { + var res = await _httpClient.get( + '/steward-remain-weight/', + headers: {'Authorization': 'Bearer $token'}, + fromJson: StewardRemainWeight.fromJson, + ); + + return res.data; + } +} diff --git a/packages/chicken/lib/features/steward/data/di/steward_di.dart b/packages/chicken/lib/features/steward/data/di/steward_di.dart new file mode 100644 index 0000000..eda06f6 --- /dev/null +++ b/packages/chicken/lib/features/steward/data/di/steward_di.dart @@ -0,0 +1,36 @@ +import 'package:rasadyar_chicken/features/steward/data/datasources/remote/steward_remote_data_source.dart'; +import 'package:rasadyar_chicken/features/steward/data/datasources/remote/steward_remote_data_source_impl.dart'; +import 'package:rasadyar_chicken/features/steward/data/repositories/steward_repository.dart'; +import 'package:rasadyar_chicken/features/steward/data/repositories/steward_repository_impl.dart'; +import 'package:rasadyar_core/core.dart'; + +/// Setup dependency injection for steward feature +Future setupStewardDI(GetIt di, DioRemote dioRemote) async { + di.registerLazySingleton( + () => StewardRemoteDataSourceImpl(dioRemote), + ); + + di.registerLazySingleton( + () => StewardRepositoryImpl(di.get()), + ); +} + +/// Re-register steward dependencies (used when base URL changes) +Future reRegisterStewardDI(GetIt di, DioRemote dioRemote) async { + await reRegister(di, () => StewardRemoteDataSourceImpl(dioRemote)); + await reRegister( + di, + () => StewardRepositoryImpl(di.get()), + ); +} + +/// Helper function to re-register a dependency +Future reRegister( + GetIt di, + T Function() factory, +) async { + if (di.isRegistered()) { + await di.unregister(); + } + di.registerLazySingleton(factory); +} diff --git a/packages/chicken/lib/data/models/request/conform_allocation/conform_allocation.dart b/packages/chicken/lib/features/steward/data/model/request/conform_allocation/conform_allocation.dart similarity index 100% rename from packages/chicken/lib/data/models/request/conform_allocation/conform_allocation.dart rename to packages/chicken/lib/features/steward/data/model/request/conform_allocation/conform_allocation.dart diff --git a/packages/chicken/lib/data/models/request/conform_allocation/conform_allocation.freezed.dart b/packages/chicken/lib/features/steward/data/model/request/conform_allocation/conform_allocation.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/conform_allocation/conform_allocation.freezed.dart rename to packages/chicken/lib/features/steward/data/model/request/conform_allocation/conform_allocation.freezed.dart diff --git a/packages/chicken/lib/data/models/request/conform_allocation/conform_allocation.g.dart b/packages/chicken/lib/features/steward/data/model/request/conform_allocation/conform_allocation.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/conform_allocation/conform_allocation.g.dart rename to packages/chicken/lib/features/steward/data/model/request/conform_allocation/conform_allocation.g.dart diff --git a/packages/chicken/lib/data/models/request/create_steward_free_bar/create_steward_free_bar.dart b/packages/chicken/lib/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.dart similarity index 100% rename from packages/chicken/lib/data/models/request/create_steward_free_bar/create_steward_free_bar.dart rename to packages/chicken/lib/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.dart diff --git a/packages/chicken/lib/data/models/request/create_steward_free_bar/create_steward_free_bar.freezed.dart b/packages/chicken/lib/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/create_steward_free_bar/create_steward_free_bar.freezed.dart rename to packages/chicken/lib/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.freezed.dart diff --git a/packages/chicken/lib/data/models/request/create_steward_free_bar/create_steward_free_bar.g.dart b/packages/chicken/lib/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/create_steward_free_bar/create_steward_free_bar.g.dart rename to packages/chicken/lib/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.g.dart diff --git a/packages/chicken/lib/data/models/request/steward_allocation/steward_allocation_request.dart b/packages/chicken/lib/features/steward/data/model/request/steward_allocation/steward_allocation_request.dart similarity index 100% rename from packages/chicken/lib/data/models/request/steward_allocation/steward_allocation_request.dart rename to packages/chicken/lib/features/steward/data/model/request/steward_allocation/steward_allocation_request.dart diff --git a/packages/chicken/lib/data/models/request/steward_allocation/steward_allocation_request.freezed.dart b/packages/chicken/lib/features/steward/data/model/request/steward_allocation/steward_allocation_request.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/steward_allocation/steward_allocation_request.freezed.dart rename to packages/chicken/lib/features/steward/data/model/request/steward_allocation/steward_allocation_request.freezed.dart diff --git a/packages/chicken/lib/data/models/request/steward_allocation/steward_allocation_request.g.dart b/packages/chicken/lib/features/steward/data/model/request/steward_allocation/steward_allocation_request.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/steward_allocation/steward_allocation_request.g.dart rename to packages/chicken/lib/features/steward/data/model/request/steward_allocation/steward_allocation_request.g.dart diff --git a/packages/chicken/lib/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart b/packages/chicken/lib/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart similarity index 100% rename from packages/chicken/lib/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart rename to packages/chicken/lib/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart diff --git a/packages/chicken/lib/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.freezed.dart b/packages/chicken/lib/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.freezed.dart rename to packages/chicken/lib/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.freezed.dart diff --git a/packages/chicken/lib/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.g.dart b/packages/chicken/lib/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.g.dart rename to packages/chicken/lib/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.g.dart diff --git a/packages/chicken/lib/data/models/request/submit_steward_allocation/submit_steward_allocation.dart b/packages/chicken/lib/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.dart similarity index 100% rename from packages/chicken/lib/data/models/request/submit_steward_allocation/submit_steward_allocation.dart rename to packages/chicken/lib/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.dart diff --git a/packages/chicken/lib/data/models/request/submit_steward_allocation/submit_steward_allocation.freezed.dart b/packages/chicken/lib/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/request/submit_steward_allocation/submit_steward_allocation.freezed.dart rename to packages/chicken/lib/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.freezed.dart diff --git a/packages/chicken/lib/data/models/request/submit_steward_allocation/submit_steward_allocation.g.dart b/packages/chicken/lib/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.g.dart similarity index 100% rename from packages/chicken/lib/data/models/request/submit_steward_allocation/submit_steward_allocation.g.dart rename to packages/chicken/lib/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.g.dart diff --git a/packages/chicken/lib/data/models/response/allocated_made/allocated_made.dart b/packages/chicken/lib/features/steward/data/model/response/allocated_made/allocated_made.dart similarity index 100% rename from packages/chicken/lib/data/models/response/allocated_made/allocated_made.dart rename to packages/chicken/lib/features/steward/data/model/response/allocated_made/allocated_made.dart diff --git a/packages/chicken/lib/data/models/response/allocated_made/allocated_made.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/allocated_made/allocated_made.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/allocated_made/allocated_made.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/allocated_made/allocated_made.freezed.dart diff --git a/packages/chicken/lib/data/models/response/allocated_made/allocated_made.g.dart b/packages/chicken/lib/features/steward/data/model/response/allocated_made/allocated_made.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/allocated_made/allocated_made.g.dart rename to packages/chicken/lib/features/steward/data/model/response/allocated_made/allocated_made.g.dart diff --git a/packages/chicken/lib/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart b/packages/chicken/lib/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart similarity index 100% rename from packages/chicken/lib/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart rename to packages/chicken/lib/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart diff --git a/packages/chicken/lib/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.freezed.dart diff --git a/packages/chicken/lib/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.g.dart b/packages/chicken/lib/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.g.dart rename to packages/chicken/lib/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.g.dart diff --git a/packages/chicken/lib/data/models/response/imported_loads_model/imported_loads_model.dart b/packages/chicken/lib/features/steward/data/model/response/imported_loads_model/imported_loads_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/imported_loads_model/imported_loads_model.dart rename to packages/chicken/lib/features/steward/data/model/response/imported_loads_model/imported_loads_model.dart diff --git a/packages/chicken/lib/data/models/response/imported_loads_model/imported_loads_model.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/imported_loads_model/imported_loads_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/imported_loads_model/imported_loads_model.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/imported_loads_model/imported_loads_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/imported_loads_model/imported_loads_model.g.dart b/packages/chicken/lib/features/steward/data/model/response/imported_loads_model/imported_loads_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/imported_loads_model/imported_loads_model.g.dart rename to packages/chicken/lib/features/steward/data/model/response/imported_loads_model/imported_loads_model.g.dart diff --git a/packages/chicken/lib/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart b/packages/chicken/lib/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart similarity index 100% rename from packages/chicken/lib/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart rename to packages/chicken/lib/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart diff --git a/packages/chicken/lib/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.freezed.dart diff --git a/packages/chicken/lib/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.g.dart b/packages/chicken/lib/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.g.dart rename to packages/chicken/lib/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.g.dart diff --git a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.dart b/packages/chicken/lib/features/steward/data/model/response/segmentation_model/segmentation_model.dart similarity index 100% rename from packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.dart rename to packages/chicken/lib/features/steward/data/model/response/segmentation_model/segmentation_model.dart diff --git a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/segmentation_model/segmentation_model.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/segmentation_model/segmentation_model.freezed.dart diff --git a/packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.g.dart b/packages/chicken/lib/features/steward/data/model/response/segmentation_model/segmentation_model.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/segmentation_model/segmentation_model.g.dart rename to packages/chicken/lib/features/steward/data/model/response/segmentation_model/segmentation_model.g.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_bar/steward_free_bar.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_bar/steward_free_bar.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_bar/steward_free_bar.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_bar/steward_free_bar.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_bar/steward_free_bar.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_bar/steward_free_bar.freezed.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_bar/steward_free_bar.g.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_bar/steward_free_bar.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_bar/steward_free_bar.g.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_bar/steward_free_bar.g.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.freezed.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.g.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.g.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.g.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_sale_bar/steward_free_sale_bar.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_sale_bar/steward_free_sale_bar.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.freezed.dart diff --git a/packages/chicken/lib/data/models/response/steward_free_sale_bar/steward_free_sale_bar.g.dart b/packages/chicken/lib/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_free_sale_bar/steward_free_sale_bar.g.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.g.dart diff --git a/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.dart b/packages/chicken/lib/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart diff --git a/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.freezed.dart diff --git a/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.g.dart b/packages/chicken/lib/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.g.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.g.dart diff --git a/packages/chicken/lib/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart b/packages/chicken/lib/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart diff --git a/packages/chicken/lib/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.freezed.dart diff --git a/packages/chicken/lib/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.g.dart b/packages/chicken/lib/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.g.dart rename to packages/chicken/lib/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.g.dart diff --git a/packages/chicken/lib/data/models/response/waiting_arrival/waiting_arrival.dart b/packages/chicken/lib/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart similarity index 100% rename from packages/chicken/lib/data/models/response/waiting_arrival/waiting_arrival.dart rename to packages/chicken/lib/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart diff --git a/packages/chicken/lib/data/models/response/waiting_arrival/waiting_arrival.freezed.dart b/packages/chicken/lib/features/steward/data/model/response/waiting_arrival/waiting_arrival.freezed.dart similarity index 100% rename from packages/chicken/lib/data/models/response/waiting_arrival/waiting_arrival.freezed.dart rename to packages/chicken/lib/features/steward/data/model/response/waiting_arrival/waiting_arrival.freezed.dart diff --git a/packages/chicken/lib/data/models/response/waiting_arrival/waiting_arrival.g.dart b/packages/chicken/lib/features/steward/data/model/response/waiting_arrival/waiting_arrival.g.dart similarity index 100% rename from packages/chicken/lib/data/models/response/waiting_arrival/waiting_arrival.g.dart rename to packages/chicken/lib/features/steward/data/model/response/waiting_arrival/waiting_arrival.g.dart diff --git a/packages/chicken/lib/features/steward/data/repositories/steward_repository.dart b/packages/chicken/lib/features/steward/data/repositories/steward_repository.dart new file mode 100644 index 0000000..c0f175c --- /dev/null +++ b/packages/chicken/lib/features/steward/data/repositories/steward_repository.dart @@ -0,0 +1,140 @@ +import 'package:rasadyar_chicken/features/steward/data/model/request/conform_allocation/conform_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/allocated_made/allocated_made.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/imported_loads_model/imported_loads_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; + + +import 'package:rasadyar_core/core.dart'; + +abstract class StewardRepository { + Future?> getWaitingArrivals({ + required String token, + Map? queryParameters, + }); + + Future setSateForArrivals({ + required String token, + required Map request, + }); + + Future?> getImportedLoadsModel({ + required String token, + Map? queryParameters, + }); + + Future?> getAllocatedMade({ + required String token, + Map? queryParameters, + }); + + Future confirmAllocation({ + required String token, + required Map allocation, + }); + + Future denyAllocation({ + required String token, + required String allocationToken, + }); + + Future confirmAllAllocation({ + required String token, + required List allocationTokens, + }); + + Future postSubmitStewardAllocation({ + required String token, + required SubmitStewardAllocation request, + }); + + Future deleteStewardAllocation({ + required String token, + Map? queryParameters, + }); + + Future updateStewardAllocation({ + required String token, + required ConformAllocation request, + }); + + Future getStewardDashboard({ + required String token, + required String stratDate, + required String endDate, + }); + + Future getDashboardKillHouseFreeBar({ + required String token, + required String stratDate, + required String endDate, + }); + + Future?> + getStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }); + + Future createStewardPurchasesOutSideOfTheProvince({ + required String token, + required CreateStewardFreeBar body, + }); + + Future editStewardPurchasesOutSideOfTheProvince({ + required String token, + required CreateStewardFreeBar body, + }); + + Future deleteStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }); + + Future?> + getOutProvinceCarcassesBuyer({ + required String token, + Map? queryParameters, + }); + + Future createOutProvinceCarcassesBuyer({ + required String token, + required OutProvinceCarcassesBuyer body, + }); + + Future?> getStewardFreeSaleBar({ + required String token, + Map? queryParameters, + }); + + Future createOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }); + + Future updateOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }); + + Future deleteOutProvinceStewardFreeBar({ + required String token, + required String key, + }); + + Future getStewardSalesInfoDashboard({ + required String token, + Map? queryParameters, + }); + + Future getStewardRemainWeight({required String token}); +} diff --git a/packages/chicken/lib/features/steward/data/repositories/steward_repository_impl.dart b/packages/chicken/lib/features/steward/data/repositories/steward_repository_impl.dart new file mode 100644 index 0000000..cf20797 --- /dev/null +++ b/packages/chicken/lib/features/steward/data/repositories/steward_repository_impl.dart @@ -0,0 +1,287 @@ +import 'package:rasadyar_chicken/features/steward/data/datasources/remote/steward_remote_data_source.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/conform_allocation/conform_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/allocated_made/allocated_made.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/imported_loads_model/imported_loads_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; +import 'package:rasadyar_chicken/features/steward/data/repositories/steward_repository.dart'; +import 'package:rasadyar_core/core.dart'; + +class StewardRepositoryImpl implements StewardRepository { + final StewardRemoteDataSource _remote; + + StewardRepositoryImpl(this._remote); + + @override + Future?> getWaitingArrivals({ + required String token, + Map? queryParameters, + }) async { + return await _remote.getWaitingArrivals( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future setSateForArrivals({ + required String token, + required Map request, + }) async { + return await _remote.setSateForArrivals(token: token, request: request); + } + + @override + Future?> getImportedLoadsModel({ + required String token, + Map? queryParameters, + }) async { + return await _remote.getImportedLoadsModel( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future?> getAllocatedMade({ + required String token, + Map? queryParameters, + }) async { + return await _remote.getAllocatedMade( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future confirmAllocation({ + required String token, + required Map allocation, + }) async { + return await _remote.confirmAllocation( + token: token, + allocation: allocation, + ); + } + + @override + Future denyAllocation({ + required String token, + required String allocationToken, + }) async { + return await _remote.denyAllocation( + token: token, + allocationToken: allocationToken, + ); + } + + @override + Future confirmAllAllocation({ + required String token, + required List allocationTokens, + }) async { + return await _remote.confirmAllAllocation( + token: token, + allocationTokens: allocationTokens, + ); + } + + @override + Future postSubmitStewardAllocation({ + required String token, + required SubmitStewardAllocation request, + }) async { + return await _remote.postSubmitStewardAllocation( + token: token, + request: request, + ); + } + + @override + Future deleteStewardAllocation({ + required String token, + Map? queryParameters, + }) async { + return await _remote.deleteStewardAllocation( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future updateStewardAllocation({ + required String token, + required ConformAllocation request, + }) async { + return await _remote.updateStewardAllocation( + token: token, + request: request, + ); + } + + @override + Future getStewardDashboard({ + required String token, + required String stratDate, + required String endDate, + }) async { + return await _remote.getStewardDashboard( + token: token, + stratDate: stratDate, + endDate: endDate, + ); + } + + @override + Future getDashboardKillHouseFreeBar({ + required String token, + required String stratDate, + required String endDate, + }) async { + return await _remote.getDashboardKillHouseFreeBar( + token: token, + stratDate: stratDate, + endDate: endDate, + ); + } + + @override + Future?> + getStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }) async { + return await _remote.getStewardPurchasesOutSideOfTheProvince( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future createStewardPurchasesOutSideOfTheProvince({ + required String token, + required CreateStewardFreeBar body, + }) async { + return await _remote.createStewardPurchasesOutSideOfTheProvince( + token: token, + body: body, + ); + } + + @override + Future editStewardPurchasesOutSideOfTheProvince({ + required String token, + required CreateStewardFreeBar body, + }) async { + return await _remote.editStewardPurchasesOutSideOfTheProvince( + token: token, + queryParameters: body.toJson() + ..removeWhere((key, value) => value == null), + ); + } + + @override + Future deleteStewardPurchasesOutSideOfTheProvince({ + required String token, + Map? queryParameters, + }) async { + return await _remote.deleteStewardPurchasesOutSideOfTheProvince( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future?> + getOutProvinceCarcassesBuyer({ + required String token, + Map? queryParameters, + }) async { + return await _remote.getOutProvinceCarcassesBuyer( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future createOutProvinceCarcassesBuyer({ + required String token, + required OutProvinceCarcassesBuyer body, + }) async { + return await _remote.createOutProvinceCarcassesBuyer( + token: token, + body: body, + ); + } + + @override + Future?> getStewardFreeSaleBar({ + required String token, + Map? queryParameters, + }) async { + return await _remote.getStewardFreeSaleBar( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future createOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }) async { + return await _remote.createOutProvinceStewardFreeBar( + token: token, + body: body, + ); + } + + @override + Future updateOutProvinceStewardFreeBar({ + required String token, + required StewardFreeSaleBarRequest body, + }) async { + return await _remote.updateOutProvinceStewardFreeBar( + token: token, + body: body, + ); + } + + @override + Future deleteOutProvinceStewardFreeBar({ + required String token, + required String key, + }) async { + return await _remote.deleteOutProvinceStewardFreeBar( + token: token, + key: key, + ); + } + + @override + Future getStewardSalesInfoDashboard({ + required String token, + Map? queryParameters, + }) async { + return await _remote.getStewardSalesInfoDashboard( + token: token, + queryParameters: queryParameters, + ); + } + + @override + Future getStewardRemainWeight({ + required String token, + }) async { + return await _remote.getStewardRemainWeight(token: token); + } +} diff --git a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/logic.dart index 150e4ab..4c47ead 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/logic.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_allocation/steward_allocation_request.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_allocation/steward_allocation_request.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; @@ -33,7 +33,11 @@ class BuyInProvinceAllLogic extends GetxController { @override void onReady() { - debounce(searchedValue, (callback) => getAllArrivals(), time: Duration(milliseconds: 2000)); + debounce( + searchedValue, + (callback) => getAllArrivals(), + time: Duration(milliseconds: 2000), + ); super.onReady(); ever(approvedWithOtpCode, (callback) { if (callback == false) { @@ -42,13 +46,12 @@ class BuyInProvinceAllLogic extends GetxController { }); } - - Future getAllArrivals([bool isLoadingMore = false]) async { if (isLoadingMore) { isLoadingMoreAllocationsMade.value = true; } else { - allProduct.value = Resource>.loading(); + allProduct.value = + Resource>.loading(); } if (searchedValue.value != null && @@ -58,7 +61,7 @@ class BuyInProvinceAllLogic extends GetxController { } safeCall( - call: () async => await rootLogic.chickenRepository.getWaitingArrivals( + call: () async => await rootLogic.stewardRepository.getWaitingArrivals( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( queryParams: {'type': 'all'}, @@ -74,16 +77,21 @@ class BuyInProvinceAllLogic extends GetxController { onSuccess: (res) async { await Future.delayed(Duration(milliseconds: 200)); if ((res?.count ?? 0) == 0) { - allProduct.value = Resource>.empty(); + allProduct.value = + Resource>.empty(); } else { - allProduct.value = Resource>.success( - PaginationModel( - count: res?.count ?? 0, - next: res?.next, - previous: res?.previous, - results: [...(allProduct.value.data?.results ?? []), ...(res?.results ?? [])], - ), - ); + allProduct.value = + Resource>.success( + PaginationModel( + count: res?.count ?? 0, + next: res?.next, + previous: res?.previous, + results: [ + ...(allProduct.value.data?.results ?? []), + ...(res?.results ?? []), + ], + ), + ); } }, ); @@ -105,7 +113,7 @@ class BuyInProvinceAllLogic extends GetxController { safeCall( showError: true, - call: () async => await rootLogic.chickenRepository.setSateForArrivals( + call: () async => await rootLogic.stewardRepository.setSateForArrivals( token: rootLogic.tokenService.accessToken.value!, request: request, ), @@ -128,7 +136,7 @@ class BuyInProvinceAllLogic extends GetxController { request.removeWhere((key, value) => value == null); safeCall( - call: () async => await rootLogic.chickenRepository.setSateForArrivals( + call: () async => await rootLogic.stewardRepository.setSateForArrivals( token: rootLogic.tokenService.accessToken.value!, request: request, ), diff --git a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/view.dart b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/view.dart index 609ee56..9717a4b 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_all/view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; import 'package:rasadyar_chicken/presentation/utils/string_utils.dart'; import 'package:rasadyar_core/core.dart'; @@ -84,14 +84,19 @@ class BuyInProvinceAllPage extends GetView { child: Assets.vec.hotChickenSvg.svg( width: 24, height: 24, - colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn), + colorFilter: ColorFilter.mode( + AppColor.blueNormal, + BlendMode.srcIn, + ), ), ), Text( item.weightOfCarcasses?.separatedByCommaFa.addKg ?? 'N/A', textAlign: TextAlign.left, textDirection: TextDirection.ltr, - style: AppFonts.yekan12Bold.copyWith(color: AppColor.blueNormal), + style: AppFonts.yekan12Bold.copyWith( + color: AppColor.blueNormal, + ), ), ], ), @@ -119,7 +124,10 @@ class BuyInProvinceAllPage extends GetView { Container itemListExpandedWidget(WaitingArrivalModel item) { return Container( padding: EdgeInsets.symmetric(horizontal: 8), - decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + ), child: Column( spacing: 8, children: [ @@ -138,10 +146,15 @@ class BuyInProvinceAllPage extends GetView { style: AppFonts.yekan10.copyWith(color: AppColor.darkGreyDark), ), SizedBox(width: 7), - SvgGenImage.vec(controller.getVecPathItem(item.receiverState)).svg( + SvgGenImage.vec( + controller.getVecPathItem(item.receiverState), + ).svg( width: 16.w, height: 16.h, - colorFilter: ColorFilter.mode(AppColor.darkGreyDark, BlendMode.srcIn), + colorFilter: ColorFilter.mode( + AppColor.darkGreyDark, + BlendMode.srcIn, + ), ), ], ), @@ -163,12 +176,16 @@ class BuyInProvinceAllPage extends GetView { children: [ Text( item.date?.toJalali.formatter.wN ?? 'N/A', - style: AppFonts.yekan14.copyWith(color: AppColor.textColor), + style: AppFonts.yekan14.copyWith( + color: AppColor.textColor, + ), ), Text( '${item.date?.toJalali.formatter.d} ${item.date?.toJalali.formatter.mN ?? 'N/A'}', - style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), + style: AppFonts.yekan14.copyWith( + color: AppColor.blueNormal, + ), ), ], ), @@ -186,13 +203,19 @@ class BuyInProvinceAllPage extends GetView { ), ), - buildRow(title: 'مشخصات فروشنده', value: item.toSteward?.user?.fullname ?? 'N/A'), + buildRow( + title: 'مشخصات فروشنده', + value: item.toSteward?.user?.fullname ?? 'N/A', + ), buildRow( title: 'تلفن فروشنده', value: item.toSteward?.user?.mobile ?? 'N/A', valueStyle: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), ), - buildRow(title: 'نوع تخصیص', value: item.allocationType?.faAllocationType ?? 'N/A'), + buildRow( + title: 'نوع تخصیص', + value: item.allocationType?.faAllocationType ?? 'N/A', + ), buildRow(title: ' سهمیه', value: item.quota?.faTitle ?? 'N/A'), buildRow(title: 'محصول', value: item.product?.name ?? 'N/A'), buildRow( @@ -203,7 +226,9 @@ class BuyInProvinceAllPage extends GetView { buildRow( title: 'قیمت هر کیلوگرم', titleLabel: (item.approvedPriceStatus ?? false) ? 'مصوب' : 'آزاد', - titleLabelStyle: AppFonts.yekan14Bold.copyWith(color: AppColor.greenNormal), + titleLabelStyle: AppFonts.yekan14Bold.copyWith( + color: AppColor.greenNormal, + ), value: item.amount?.separatedByCommaFa ?? 'N/A', valueLabel: 'ریال', ), @@ -240,7 +265,9 @@ class BuyInProvinceAllPage extends GetView { }, controller.isLoadingConfirmMap), ROutlinedElevated( text: 'رد', - textStyle: AppFonts.yekan20.copyWith(color: AppColor.redNormal), + textStyle: AppFonts.yekan20.copyWith( + color: AppColor.redNormal, + ), width: 150.w, height: 40.h, onPressed: () { @@ -285,25 +312,37 @@ class BuyInProvinceAllPage extends GetView { label: 'وزن(کیلوگرم)', controller: controller.weightController, keyboardType: TextInputType.number, - inputFormatters: [FilteringTextInputFormatter.digitsOnly, SeparatorInputFormatter()], + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + SeparatorInputFormatter(), + ], ), SizedBox(height: 16.h), RTextField( label: 'حجم(قطعه)', controller: controller.countController, keyboardType: TextInputType.number, - inputFormatters: [FilteringTextInputFormatter.digitsOnly, SeparatorInputFormatter()], + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + SeparatorInputFormatter(), + ], ), SizedBox(height: 16.h), RTextField( label: 'افت وزن(کیلوگرم)', controller: controller.lossController, keyboardType: TextInputType.number, - inputFormatters: [FilteringTextInputFormatter.digitsOnly, SeparatorInputFormatter()], + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + SeparatorInputFormatter(), + ], ), SizedBox(height: 16.h), - Text('تایید ', style: AppFonts.yekan16Bold.copyWith(color: AppColor.textColor)), + Text( + 'تایید ', + style: AppFonts.yekan16Bold.copyWith(color: AppColor.textColor), + ), ObxValue((data) { return Column( children: [ @@ -373,7 +412,12 @@ class BuyInProvinceAllPage extends GetView { child: Row( children: [ Radio(value: value), - Text(label, style: textStyle ?? AppFonts.yekan16.copyWith(color: AppColor.textColor)), + Text( + label, + style: + textStyle ?? + AppFonts.yekan16.copyWith(color: AppColor.textColor), + ), ], ), ); diff --git a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/logic.dart index 9cd4ca2..bb74836 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/logic.dart @@ -1,8 +1,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_allocation/steward_allocation_request.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_allocation/steward_allocation_request.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/presentation/utils/utils.dart'; import 'package:rasadyar_core/core.dart'; @@ -48,8 +48,6 @@ class BuyInProvinceWaitingLogic extends GetxController { }); } - - void setSearchValue(String? data) { searchedValue.value = data?.trim(); } @@ -58,7 +56,8 @@ class BuyInProvinceWaitingLogic extends GetxController { if (isLoadingMore) { isLoadingMoreAllocationsMade.value = true; } else { - waitingProduct.value = Resource>.loading(); + waitingProduct.value = + Resource>.loading(); } if (searchedValue.value != null && @@ -68,7 +67,7 @@ class BuyInProvinceWaitingLogic extends GetxController { } safeCall( - call: () async => await rootLogic.chickenRepository.getWaitingArrivals( + call: () async => await rootLogic.stewardRepository.getWaitingArrivals( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( queryParams: {'type': 'not_entered'}, @@ -84,16 +83,21 @@ class BuyInProvinceWaitingLogic extends GetxController { onSuccess: (res) async { await Future.delayed(Duration(milliseconds: 200)); if ((res?.count ?? 0) == 0) { - waitingProduct.value = Resource>.empty(); + waitingProduct.value = + Resource>.empty(); } else { - waitingProduct.value = Resource>.success( - PaginationModel( - count: res?.count ?? 0, - next: res?.next, - previous: res?.previous, - results: [...(waitingProduct.value.data?.results ?? []), ...(res?.results ?? [])], - ), - ); + waitingProduct.value = + Resource>.success( + PaginationModel( + count: res?.count ?? 0, + next: res?.next, + previous: res?.previous, + results: [ + ...(waitingProduct.value.data?.results ?? []), + ...(res?.results ?? []), + ], + ), + ); flashingFabBgColor(); } }, @@ -118,7 +122,7 @@ class BuyInProvinceWaitingLogic extends GetxController { safeCall( showError: true, showSuccess: true, - call: () async => await rootLogic.chickenRepository.setSateForArrivals( + call: () async => await rootLogic.stewardRepository.setSateForArrivals( token: rootLogic.tokenService.accessToken.value!, request: request, ), @@ -147,7 +151,7 @@ class BuyInProvinceWaitingLogic extends GetxController { request.removeWhere((key, value) => value == null); safeCall( - call: () async => await rootLogic.chickenRepository.setSateForArrivals( + call: () async => await rootLogic.stewardRepository.setSateForArrivals( token: rootLogic.tokenService.accessToken.value!, request: request, ), diff --git a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/view.dart b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/view.dart index 8e4b76b..4e7a294 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/buy_in_province_waiting/view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart'; import 'package:rasadyar_chicken/presentation/utils/string_utils.dart'; import 'package:rasadyar_core/core.dart'; @@ -88,14 +88,19 @@ class BuyInProvinceWaitingPage extends GetView { child: Assets.vec.hotChickenSvg.svg( width: 24, height: 24, - colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn), + colorFilter: ColorFilter.mode( + AppColor.blueNormal, + BlendMode.srcIn, + ), ), ), Text( item.weightOfCarcasses?.separatedByCommaFa.addKg ?? 'ندارد', textAlign: TextAlign.left, textDirection: TextDirection.ltr, - style: AppFonts.yekan12Bold.copyWith(color: AppColor.blueNormal), + style: AppFonts.yekan12Bold.copyWith( + color: AppColor.blueNormal, + ), ), ], ), @@ -130,7 +135,10 @@ class BuyInProvinceWaitingPage extends GetView { Container itemListExpandedWidget(WaitingArrivalModel item) { return Container( padding: EdgeInsets.symmetric(horizontal: 8), - decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + ), child: Column( spacing: 8, children: [ @@ -170,12 +178,16 @@ class BuyInProvinceWaitingPage extends GetView { children: [ Text( item.date?.toJalali.formatter.wN ?? 'ندارد', - style: AppFonts.yekan14.copyWith(color: AppColor.textColor), + style: AppFonts.yekan14.copyWith( + color: AppColor.textColor, + ), ), Text( '${item.date?.toJalali.formatter.d} ${item.date?.toJalali.formatter.mN ?? 'ندارد'}', - style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), + style: AppFonts.yekan14.copyWith( + color: AppColor.blueNormal, + ), ), ], ), @@ -204,9 +216,15 @@ class BuyInProvinceWaitingPage extends GetView { '${controller.rootLogic.isKillHouse(item) ? item.killHouse?.killHouseOperator?.user?.mobile : item.steward?.user?.mobile} ', valueStyle: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), ), - buildRow(title: 'نوع تخصیص', value: item.allocationType?.faAllocationType ?? 'ندارد'), + buildRow( + title: 'نوع تخصیص', + value: item.allocationType?.faAllocationType ?? 'ندارد', + ), buildRow(title: ' سهمیه', value: item.quota?.faTitle ?? 'ندارد'), - buildRow(title: 'نوع فروش', value: item.saleType == "governmental" ? 'دولتی' : 'آزاد'), + buildRow( + title: 'نوع فروش', + value: item.saleType == "governmental" ? 'دولتی' : 'آزاد', + ), buildRow(title: 'محصول', value: item.product?.name ?? 'ندارد'), buildRow( title: 'تاریخ تولید گوشت', @@ -219,11 +237,16 @@ class BuyInProvinceWaitingPage extends GetView { buildRow( title: 'قیمت هر کیلوگرم', titleLabel: (item.approvedPriceStatus ?? false) ? 'دولتی' : 'آزاد', - titleLabelStyle: AppFonts.yekan14Bold.copyWith(color: AppColor.greenNormal), + titleLabelStyle: AppFonts.yekan14Bold.copyWith( + color: AppColor.greenNormal, + ), value: '${item.amount?.separatedByCommaFa} ریال', ), - buildRow(title: 'قیمت کل', value: '${item.totalAmount?.separatedByCommaFa} ریال'), + buildRow( + title: 'قیمت کل', + value: '${item.totalAmount?.separatedByCommaFa} ریال', + ), Row( mainAxisAlignment: MainAxisAlignment.center, @@ -236,7 +259,10 @@ class BuyInProvinceWaitingPage extends GetView { height: 40.h, isLoading: data[item.key!] ?? false, onPressed: () async { - await Get.bottomSheet(conformationBottomSheet(item), isScrollControlled: true); + await Get.bottomSheet( + conformationBottomSheet(item), + isScrollControlled: true, + ); }, textStyle: AppFonts.yekan20.copyWith(color: Colors.white), backgroundColor: AppColor.greenNormal, @@ -276,25 +302,37 @@ class BuyInProvinceWaitingPage extends GetView { label: 'وزن(کیلوگرم)', controller: controller.weightController, keyboardType: TextInputType.number, - inputFormatters: [FilteringTextInputFormatter.digitsOnly, SeparatorInputFormatter()], + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + SeparatorInputFormatter(), + ], ), SizedBox(height: 16.h), RTextField( label: 'حجم(قطعه)', controller: controller.countController, keyboardType: TextInputType.number, - inputFormatters: [FilteringTextInputFormatter.digitsOnly, SeparatorInputFormatter()], + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + SeparatorInputFormatter(), + ], ), SizedBox(height: 16.h), RTextField( label: 'افت وزن(کیلوگرم)', controller: controller.lossController, keyboardType: TextInputType.number, - inputFormatters: [FilteringTextInputFormatter.digitsOnly, SeparatorInputFormatter()], + inputFormatters: [ + FilteringTextInputFormatter.digitsOnly, + SeparatorInputFormatter(), + ], ), SizedBox(height: 16.h), - Text('تایید ', style: AppFonts.yekan16Bold.copyWith(color: AppColor.textColor)), + Text( + 'تایید ', + style: AppFonts.yekan16Bold.copyWith(color: AppColor.textColor), + ), ObxValue((data) { return Column( children: [ @@ -365,7 +403,12 @@ class BuyInProvinceWaitingPage extends GetView { child: Row( children: [ Radio(value: value), - Text(label, style: textStyle ?? AppFonts.yekan16.copyWith(color: AppColor.textColor)), + Text( + label, + style: + textStyle ?? + AppFonts.yekan16.copyWith(color: AppColor.textColor), + ), ], ), ); diff --git a/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/logic.dart index 0237e60..be953c1 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/logic.dart @@ -1,8 +1,8 @@ import 'package:flutter/cupertino.dart'; -import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/create_steward_free_bar/create_steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/buy/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sale/logic.dart'; @@ -84,11 +84,14 @@ class BuyOutOfProvinceLogic extends GetxController { searchedValue.value = data?.trim(); } - Future getStewardPurchaseOutOfProvince([bool isLoadingMore = false]) async { + Future getStewardPurchaseOutOfProvince([ + bool isLoadingMore = false, + ]) async { if (isLoadingMore) { isLoadingMoreAllocationsMade.value = true; } else { - purchaseOutOfProvinceList.value = Resource>.loading(); + purchaseOutOfProvinceList.value = + Resource>.loading(); } if (searchedValue.value != null && @@ -97,34 +100,37 @@ class BuyOutOfProvinceLogic extends GetxController { currentPage.value = 1; // Reset to first page if search value is set } await safeCall( - call: () => rootLogic.chickenRepository.getStewardPurchasesOutSideOfTheProvince( - token: rootLogic.tokenService.accessToken.value!, - queryParameters: buildQueryParams( - pageSize: 20, - page: currentPage.value, - search: 'filter', - role: 'Steward', - value: searchedValue.value, - fromDate: fromDateFilter.value.toDateTime(), - toDate: toDateFilter.value.toDateTime(), - ), - ), + call: () => + rootLogic.stewardRepository.getStewardPurchasesOutSideOfTheProvince( + token: rootLogic.tokenService.accessToken.value!, + queryParameters: buildQueryParams( + pageSize: 20, + page: currentPage.value, + search: 'filter', + role: 'Steward', + value: searchedValue.value, + fromDate: fromDateFilter.value.toDateTime(), + toDate: toDateFilter.value.toDateTime(), + ), + ), onSuccess: (res) async { await Future.delayed(Duration(milliseconds: 500)); if ((res?.count ?? 0) == 0) { - purchaseOutOfProvinceList.value = Resource>.empty(); + purchaseOutOfProvinceList.value = + Resource>.empty(); } else { - purchaseOutOfProvinceList.value = Resource>.success( - PaginationModel( - count: res?.count ?? 0, - next: res?.next, - previous: res?.previous, - results: [ - ...(purchaseOutOfProvinceList.value.data?.results ?? []), - ...(res?.results ?? []), - ], - ), - ); + purchaseOutOfProvinceList.value = + Resource>.success( + PaginationModel( + count: res?.count ?? 0, + next: res?.next, + previous: res?.previous, + results: [ + ...(purchaseOutOfProvinceList.value.data?.results ?? []), + ...(res?.results ?? []), + ], + ), + ); } }, ); @@ -132,8 +138,9 @@ class BuyOutOfProvinceLogic extends GetxController { Future getCites() async { await safeCall( - call: () => - rootLogic.chickenRepository.getCity(provinceName: selectedProvince.value?.name ?? ''), + call: () => rootLogic.commonRepository.getCity( + provinceName: selectedProvince.value?.name ?? '', + ), onSuccess: (result) { if (result != null && result.isNotEmpty) { cites.value = result; @@ -201,10 +208,11 @@ class BuyOutOfProvinceLogic extends GetxController { barImage: _base64Image.value, date: DateTime.now().formattedYHMS, ); - await rootLogic.chickenRepository.createStewardPurchasesOutSideOfTheProvince( - token: rootLogic.tokenService.accessToken.value!, - body: createStewardFreeBar, - ); + await rootLogic.stewardRepository + .createStewardPurchasesOutSideOfTheProvince( + token: rootLogic.tokenService.accessToken.value!, + body: createStewardFreeBar, + ); }, onSuccess: (result) { getStewardPurchaseOutOfProvince(); @@ -266,10 +274,11 @@ class BuyOutOfProvinceLogic extends GetxController { await safeCall( showError: true, - call: () => rootLogic.chickenRepository.editStewardPurchasesOutSideOfTheProvince( - token: rootLogic.tokenService.accessToken.value!, - body: edit, - ), + call: () => + rootLogic.stewardRepository.editStewardPurchasesOutSideOfTheProvince( + token: rootLogic.tokenService.accessToken.value!, + body: edit, + ), onSuccess: (result) { onRefresh(); rootLogic.onRefresh(); @@ -280,10 +289,11 @@ class BuyOutOfProvinceLogic extends GetxController { Future deleteStewardPurchaseOutOfProvince(String key) async { await safeCall( - call: () => rootLogic.chickenRepository.deleteStewardPurchasesOutSideOfTheProvince( - token: rootLogic.tokenService.accessToken.value!, - queryParameters: buildRawQueryParams(queryParams: {'key': key}), - ), + call: () => rootLogic.stewardRepository + .deleteStewardPurchasesOutSideOfTheProvince( + token: rootLogic.tokenService.accessToken.value!, + queryParameters: buildRawQueryParams(queryParams: {'key': key}), + ), ); } diff --git a/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/view.dart b/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/view.dart index 3b25625..c08d238 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/buy_out_of_province/view.dart @@ -3,9 +3,9 @@ import 'dart:io'; import 'package:flutter/cupertino.dart' hide Image; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar/steward_free_bar.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/steward/inventory_widget.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/home/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/home/logic.dart index 3cb3d08..5f36129 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/home/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/home/logic.dart @@ -1,12 +1,13 @@ -import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; class HomeLogic extends GetxController { StewardRootLogic rootLogic = Get.find(); RxnInt totalWeightTodayBars = RxnInt(); - Rxn killHouseDistributionInfo = Rxn(); + Rxn killHouseDistributionInfo = + Rxn(); Rxn barInformation = Rxn(); RxList> inventoryItems = [ @@ -34,7 +35,6 @@ class HomeLogic extends GetxController { void onReady() { super.onReady(); refreshData(); - } Future refreshData() async { @@ -49,10 +49,11 @@ class HomeLogic extends GetxController { Future getGeneralBarsInformation() async { await safeCall( - call: () async => await rootLogic.chickenRepository.getGeneralBarInformation( - token: rootLogic.tokenService.accessToken.value!, - queryParameters: buildQueryParams(role: 'Steward'), - ), + call: () async => + await rootLogic.commonRepository.getGeneralBarInformation( + token: rootLogic.tokenService.accessToken.value!, + queryParameters: buildQueryParams(role: 'Steward'), + ), onSuccess: (result) { if (result != null) { barInformation.value = result; @@ -64,14 +65,15 @@ class HomeLogic extends GetxController { Future getTodayBars() async { await safeCall( - call: () async => await rootLogic.chickenRepository.getGeneralBarInformation( - token: rootLogic.tokenService.accessToken.value!, - queryParameters: buildQueryParams( - fromDate: DateTime.now(), - toDate: DateTime.now(), - role: 'Steward', - ), - ), + call: () async => + await rootLogic.commonRepository.getGeneralBarInformation( + token: rootLogic.tokenService.accessToken.value!, + queryParameters: buildQueryParams( + fromDate: DateTime.now(), + toDate: DateTime.now(), + role: 'Steward', + ), + ), onSuccess: (result) { if (result != null) { totalWeightTodayBars.value = result.totalBarsWeight?.toInt(); @@ -83,9 +85,10 @@ class HomeLogic extends GetxController { Future getDistributionInformation() async { await safeCall( - call: () async => await rootLogic.chickenRepository.getKillHouseDistributionInfo( - token: rootLogic.tokenService.accessToken.value!, - ), + call: () async => + await rootLogic.commonRepository.getKillHouseDistributionInfo( + token: rootLogic.tokenService.accessToken.value!, + ), onSuccess: (result) { if (result != null) { killHouseDistributionInfo.value = result; diff --git a/packages/chicken/lib/features/steward/presentation/pages/home/view.dart b/packages/chicken/lib/features/steward/presentation/pages/home/view.dart index 9cff083..4f16c31 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/home/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/home/view.dart @@ -1,7 +1,7 @@ import 'package:flutter/cupertino.dart' hide LinearGradient; import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/steward/widely_used/view.dart'; import 'package:rasadyar_core/core.dart'; @@ -75,7 +75,10 @@ class HomePage extends GetView { AnimatedRotation( turns: 180, duration: Duration(milliseconds: 3000), - child: Icon(CupertinoIcons.chevron_up, size: 18), + child: Icon( + CupertinoIcons.chevron_up, + size: 18, + ), ), ], ), @@ -99,7 +102,9 @@ class HomePage extends GetView { Row( spacing: 8, mainAxisAlignment: MainAxisAlignment.end, - children: [Icon(CupertinoIcons.chevron_down, size: 18)], + children: [ + Icon(CupertinoIcons.chevron_down, size: 18), + ], ), _todayShipmentWidget(), _todayShipmentWidget2(), @@ -127,12 +132,17 @@ class HomePage extends GetView { Assets.vec.chicken2Svg.svg( width: 24.w, height: 24.h, - colorFilter: ColorFilter.mode(AppColor.blueDark, BlendMode.srcIn), + colorFilter: ColorFilter.mode( + AppColor.blueDark, + BlendMode.srcIn, + ), ), Text( 'اطلاعات مرغ گرم', textAlign: TextAlign.right, - style: AppFonts.yekan16Bold.copyWith(color: AppColor.iconColor), + style: AppFonts.yekan16Bold.copyWith( + color: AppColor.iconColor, + ), ), ], ), @@ -151,7 +161,11 @@ class HomePage extends GetView { Row( children: [ SizedBox(width: 5.w), - Text('اطلاعات پخش', textAlign: TextAlign.right, style: AppFonts.yekan16), + Text( + 'اطلاعات پخش', + textAlign: TextAlign.right, + style: AppFonts.yekan16, + ), ], ), SizedBox(height: 8.h), @@ -164,7 +178,8 @@ class HomePage extends GetView { title: 'وزن دولتی', titleBgColor: const Color(0xFFB8E7DC), valueBgColor: const Color(0xFFE6FAF5), - value: data.value?.totalGovernmentalInputWeight.separatedByComma, + value: + data.value?.totalGovernmentalInputWeight.separatedByComma, ), ), Expanded( @@ -178,7 +193,10 @@ class HomePage extends GetView { Expanded( child: broadcastItem( title: 'فروش دولتی', - value: data.value?.totalGovernmentalOutputWeight.separatedByComma, + value: data + .value + ?.totalGovernmentalOutputWeight + .separatedByComma, titleBgColor: const Color(0xFFEBC4CE), valueBgColor: const Color(0xFFEDDCE0), ), @@ -202,7 +220,10 @@ class HomePage extends GetView { Expanded( child: broadcastItem( title: 'مانده دولتی', - value: data.value?.totalGovernmentalRemainWeight.separatedByComma, + value: data + .value + ?.totalGovernmentalRemainWeight + .separatedByComma, titleBgColor: const Color(0xFFB8E7DC), valueBgColor: const Color(0xFFE6FAF5), ), @@ -218,7 +239,10 @@ class HomePage extends GetView { Expanded( child: broadcastItem( title: 'فروش خارج استان', - value: data.value?.totalStewardFreeSaleBarCarcassesWeight.separatedByComma, + value: data + .value + ?.totalStewardFreeSaleBarCarcassesWeight + .separatedByComma, titleBgColor: const Color(0xFFEBC4CE), valueBgColor: const Color(0xFFEDDCE0), ), @@ -242,7 +266,8 @@ class HomePage extends GetView { child: _informationIconCard( title: 'توزیع داخل استان', isLoading: data.value == null, - description: data.value?.freeSalesWeight.separatedByCommaFa ?? '0', + description: + data.value?.freeSalesWeight.separatedByCommaFa ?? '0', iconPath: Assets.vec.truckSvg.path, iconColor: const Color.fromRGBO(85, 97, 93, 1), bgDescriptionColor: const Color(0xFFE6FAF5), @@ -253,7 +278,9 @@ class HomePage extends GetView { child: _informationIconCard( title: 'توزیع خارج استان', isLoading: data.value == null, - description: data.value?.stewardAllocationsWeight.separatedByCommaFa ?? '0', + description: + data.value?.stewardAllocationsWeight.separatedByCommaFa ?? + '0', iconPath: Assets.vec.truckFastSvg.path, iconColor: Color(0xFF647379), bgDescriptionColor: const Color(0xFFEAEFFF), @@ -302,7 +329,9 @@ class HomePage extends GetView { child: _informationLabelCard( title: 'خارج استان', isLoading: data.value == null, - description: data.value?.freeBuyingCarcassesWeight.separatedByCommaFa ?? '0', + description: + data.value?.freeBuyingCarcassesWeight.separatedByCommaFa ?? + '0', iconPath: Assets.vec.cubeSearchSvg.path, iconColor: Color(0xFF2D5FFF), bgLabelColor: const Color(0xFFAFCBFF), @@ -326,7 +355,8 @@ class HomePage extends GetView { child: _informationLabelCard( title: 'مانده انبار', isLoading: data.value == null, - description: data.value?.totalRemainWeight.separatedByCommaFa ?? '0', + description: + data.value?.totalRemainWeight.separatedByCommaFa ?? '0', iconPath: Assets.vec.cubeSearchSvg.path, bgDescriptionColor: const Color(0xFFEAEFFF), bgLabelColor: const Color(0xFFBDD4FF), @@ -337,7 +367,8 @@ class HomePage extends GetView { child: _informationLabelCard( title: 'توزیع شده', isLoading: data.value == null, - description: data.value?.realAllocatedWeight.separatedByCommaFa ?? '0', + description: + data.value?.realAllocatedWeight.separatedByCommaFa ?? '0', iconPath: Assets.vec.cubeRotateSvg.path, iconColor: Color(0xFF5C4D64), bgLabelColor: Color(0xFFC8B8D1), @@ -375,7 +406,10 @@ class HomePage extends GetView { child: Assets.vec.cubeScanSvg.svg( width: 12.w, height: 12.h, - colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn), + colorFilter: const ColorFilter.mode( + Colors.white, + BlendMode.srcIn, + ), ), ), bgDescriptionColor: Colors.white, @@ -395,7 +429,8 @@ class HomePage extends GetView { title: 'درانتظار', borderColor: const Color(0xFF9758FF), isLoading: data.value == null, - description: data.value?.totalNotEnteredBars.separatedByCommaFa ?? '0', + description: + data.value?.totalNotEnteredBars.separatedByCommaFa ?? '0', unit: '(${data.value?.totalNotEnteredKillHouseRequestsWeight.separatedByCommaFa})\nکیلوگرم', icon: Container( @@ -409,7 +444,10 @@ class HomePage extends GetView { child: Assets.vec.cubeCardFreeSvg.svg( width: 12.w, height: 12.h, - colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn), + colorFilter: const ColorFilter.mode( + Colors.white, + BlendMode.srcIn, + ), ), ), bgDescriptionColor: Colors.white, @@ -437,7 +475,12 @@ class HomePage extends GetView { child: _informationLabelCard( title: 'مانده دولتی', isLoading: data.value == null, - description: data.value?.totalGovernmentalRemainWeight?.separatedByCommaFa ?? '0', + description: + data + .value + ?.totalGovernmentalRemainWeight + ?.separatedByCommaFa ?? + '0', iconPath: Assets.vec.cubeCardGovermentSvg.path, iconColor: AppColor.textColor, bgDescriptionColor: const Color(0xFFF5ECEE), @@ -448,7 +491,8 @@ class HomePage extends GetView { child: _informationLabelCard( title: 'مانده آزاد', isLoading: data.value == null, - description: data.value?.totalFreeRemainWeight.separatedByCommaFa ?? '0', + description: + data.value?.totalFreeRemainWeight.separatedByCommaFa ?? '0', unit: 'کیلوگرم', iconPath: Assets.vec.cubeCardFreeSvg.path, iconColor: AppColor.textColor, @@ -496,7 +540,10 @@ class HomePage extends GetView { ), Divider(), - inventoryListItem(title: 'کل فروش', value: model.realAllocatedWeight?.separatedByComma), + inventoryListItem( + title: 'کل فروش', + value: model.realAllocatedWeight?.separatedByComma, + ), Divider(), inventoryListItem( title: 'مانده انبار', @@ -515,14 +562,25 @@ class HomePage extends GetView { children: [ Text( title, - style: AppFonts.yekan14.copyWith(color: const Color(0xFF353535), height: 1.2), + style: AppFonts.yekan14.copyWith( + color: const Color(0xFF353535), + height: 1.2, + ), ), Spacer(), value == null ? Center(child: CupertinoActivityIndicator()) - : Text(value, style: AppFonts.yekan14.copyWith(color: const Color(0xFF353535))), + : Text( + value, + style: AppFonts.yekan14.copyWith( + color: const Color(0xFF353535), + ), + ), SizedBox(width: 20.w), - Text('کیلوگرم', style: AppFonts.yekan10.copyWith(color: const Color(0xFF353535))), + Text( + 'کیلوگرم', + style: AppFonts.yekan10.copyWith(color: const Color(0xFF353535)), + ), ], ), ); @@ -546,7 +604,9 @@ class HomePage extends GetView { height: 65.h, decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), - border: borderColor != null ? Border.all(width: 1, color: borderColor) : null, + border: borderColor != null + ? Border.all(width: 1, color: borderColor) + : null, ), clipBehavior: Clip.hardEdge, child: Row( @@ -605,12 +665,16 @@ class HomePage extends GetView { Text( description, textAlign: TextAlign.right, - style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkActive), + style: AppFonts.yekan16.copyWith( + color: AppColor.mediumGreyDarkActive, + ), ), Text( unit, textAlign: TextAlign.center, - style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive), + style: AppFonts.yekan12.copyWith( + color: AppColor.mediumGreyDarkActive, + ), ), ], ), @@ -656,7 +720,9 @@ class HomePage extends GetView { Text( title, textAlign: TextAlign.right, - style: AppFonts.yekan14.copyWith(color: AppColor.mediumGreyDarkActive), + style: AppFonts.yekan14.copyWith( + color: AppColor.mediumGreyDarkActive, + ), ), isLoading @@ -664,12 +730,16 @@ class HomePage extends GetView { : Text( description, textAlign: TextAlign.right, - style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkActive), + style: AppFonts.yekan16.copyWith( + color: AppColor.mediumGreyDarkActive, + ), ), Text( unit, textAlign: TextAlign.center, - style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive), + style: AppFonts.yekan12.copyWith( + color: AppColor.mediumGreyDarkActive, + ), ), ], ), @@ -729,8 +799,14 @@ class HomePage extends GetView { 'کل ورودی به انبار (کیلوگرم)', model.totalFreeBarsCarcassesWeight.toString(), ), - buildRow('کل فروش (کیلوگرم)', model.realAllocatedWeight.toString()), - buildRow('مانده انبار (کیلوگرم)', model.totalRemainWeight.toString()), + buildRow( + 'کل فروش (کیلوگرم)', + model.realAllocatedWeight.toString(), + ), + buildRow( + 'مانده انبار (کیلوگرم)', + model.totalRemainWeight.toString(), + ), ], ), ), @@ -749,7 +825,9 @@ class HomePage extends GetView { child: Text( title, textAlign: TextAlign.right, - style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover), + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), ), ), Flexible( @@ -757,7 +835,9 @@ class HomePage extends GetView { child: Text( value, textAlign: TextAlign.center, - style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover), + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), ), ), ], @@ -783,7 +863,9 @@ class HomePage extends GetView { Text( 'اطلاعات ارسالی', textAlign: TextAlign.right, - style: AppFonts.yekan16Bold.copyWith(color: AppColor.blueNormal), + style: AppFonts.yekan16Bold.copyWith( + color: AppColor.blueNormal, + ), ), const SizedBox(height: 12), buildRow( @@ -816,7 +898,10 @@ class HomePage extends GetView { return Container( height: height?.h ?? 73.h, clipBehavior: Clip.hardEdge, - decoration: BoxDecoration(color: valueBgColor, borderRadius: BorderRadius.circular(8)), + decoration: BoxDecoration( + color: valueBgColor, + borderRadius: BorderRadius.circular(8), + ), child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ @@ -829,7 +914,9 @@ class HomePage extends GetView { Text( title ?? 'بدون تیتر', textAlign: TextAlign.center, - style: titleStyle ?? AppFonts.yekan12.copyWith(color: const Color(0xFF3E3E3E)), + style: + titleStyle ?? + AppFonts.yekan12.copyWith(color: const Color(0xFF3E3E3E)), ), ], ), @@ -842,7 +929,9 @@ class HomePage extends GetView { child: Text( value, textAlign: TextAlign.right, - style: valueStyle ?? AppFonts.yekan14.copyWith(color: AppColor.textColor), + style: + valueStyle ?? + AppFonts.yekan14.copyWith(color: AppColor.textColor), ), ) : Center(child: CupertinoActivityIndicator()), @@ -850,7 +939,9 @@ class HomePage extends GetView { Text( unit ?? 'کیلوگرم', textAlign: TextAlign.center, - style: unitStyle ?? AppFonts.yekan10.copyWith(color: Color(0xFF717171)), + style: + unitStyle ?? + AppFonts.yekan10.copyWith(color: Color(0xFF717171)), ), SizedBox(height: 4.h), ], @@ -902,19 +993,29 @@ class HomePage extends GetView { Row( children: [ SizedBox(width: 5.w), - Text('تعهدات', textAlign: TextAlign.right, style: AppFonts.yekan16), + Text( + 'تعهدات', + textAlign: TextAlign.right, + style: AppFonts.yekan16, + ), ], ), commitmentsItemList( title: 'تعهد دولتی توزیع داخل استان', - value: data.value?.totalCommitmentSellingInProvinceGovernmentalWeight.separatedByComma, + value: data + .value + ?.totalCommitmentSellingInProvinceGovernmentalWeight + .separatedByComma, labelColor: const Color(0xFFB9E8DC), bgColor: const Color(0xFFF3F9F8), ), commitmentsItemList( title: 'توزیع دولتی داخل استان', - value: data.value?.totalSellingInProvinceGovernmentalWeight.separatedByComma, + value: data + .value + ?.totalSellingInProvinceGovernmentalWeight + .separatedByComma, labelColor: const Color(0xFFC3D4F3), bgColor: const Color(0xFFECF3FF), ), @@ -929,19 +1030,26 @@ class HomePage extends GetView { ), commitmentsItemList( title: 'تعهد آزاد توزیع داخل استان', - value: data.value?.totalCommitmentSellingInProvinceFreeWeight.separatedByComma, + value: data + .value + ?.totalCommitmentSellingInProvinceFreeWeight + .separatedByComma, labelColor: const Color(0xFFC7DADA), bgColor: const Color(0xFFE5F7F7), ), commitmentsItemList( title: 'توزیع آزاد داخل استان', - value: data.value?.totalSellingInProvinceFreeWeight.separatedByComma, + value: + data.value?.totalSellingInProvinceFreeWeight.separatedByComma, labelColor: const Color(0xFFE0D6ED), bgColor: const Color(0xFFF5EDFF), ), commitmentsItemList( title: 'باقیمانده تعهد آزاد توزیع داخل استان', - value: data.value?.totalCommitmentSellingInProvinceFreeRemainWeight.separatedByComma, + value: data + .value + ?.totalCommitmentSellingInProvinceFreeRemainWeight + .separatedByComma, labelColor: const Color(0xFFEBC5CE), bgColor: const Color(0xFFFFF1F4), ), @@ -986,7 +1094,9 @@ class HomePage extends GetView { : Text( value, textAlign: TextAlign.right, - style: AppFonts.yekan16.copyWith(color: AppColor.textColor), + style: AppFonts.yekan16.copyWith( + color: AppColor.textColor, + ), ), SizedBox(width: 8.w), diff --git a/packages/chicken/lib/features/steward/presentation/pages/root/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/root/logic.dart index 7c4df1b..41cd578 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/root/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/root/logic.dart @@ -2,17 +2,18 @@ import 'dart:async'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; -import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local.dart'; import 'package:rasadyar_chicken/data/di/chicken_di.dart'; -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; -import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; -import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' +import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/waiting_arrival/waiting_arrival.dart' hide ProductModel; -import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository.dart'; +import 'package:rasadyar_chicken/features/steward/data/repositories/steward_repository.dart'; import 'package:rasadyar_chicken/features/common/presentation/page/profile/view.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/buy/view.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/home/view.dart'; @@ -49,7 +50,8 @@ class StewardRootLogic extends GetxController { late DioRemote dioRemote; var tokenService = Get.find(); - late ChickenRepository chickenRepository; + late CommonRepository commonRepository; + late StewardRepository stewardRepository; late ChickenLocalDataSource localDatasource; RxList errorLocationType = RxList(); @@ -65,7 +67,8 @@ class StewardRootLogic extends GetxController { void onInit() { super.onInit(); localDatasource = diChicken.get(); - chickenRepository = diChicken.get(); + commonRepository = diChicken.get(); + stewardRepository = diChicken.get(); } @override @@ -125,7 +128,7 @@ class StewardRootLogic extends GetxController { _inventoryCancelToken = CancelToken(); await safeCall?>( - call: () async => await chickenRepository.getInventory( + call: () async => await commonRepository.getInventory( token: tokenService.accessToken.value!, cancelToken: _inventoryCancelToken, ), @@ -159,7 +162,7 @@ class StewardRootLogic extends GetxController { _provincesCancelToken = CancelToken(); try { - final res = await chickenRepository.getProvince( + final res = await commonRepository.getProvince( cancelToken: _provincesCancelToken, ); if (res != null) { @@ -177,7 +180,7 @@ class StewardRootLogic extends GetxController { Future getRolesProducts() async { safeCall( - call: () async => await chickenRepository.getRolesProducts( + call: () async => await commonRepository.getRolesProducts( token: tokenService.accessToken.value!, ), onSuccess: (result) { @@ -191,7 +194,7 @@ class StewardRootLogic extends GetxController { Future getStewardSaleDashboard() async { safeCall( - call: () async => await chickenRepository.getStewardSalesInfoDashboard( + call: () async => await stewardRepository.getStewardSalesInfoDashboard( token: tokenService.accessToken.value!, queryParameters: buildRawQueryParams(role: 'Steward'), ), @@ -206,7 +209,7 @@ class StewardRootLogic extends GetxController { Future getStewardRemainWeightData() async { safeCall( - call: () async => await chickenRepository.getStewardRemainWeight( + call: () async => await stewardRepository.getStewardRemainWeight( token: tokenService.accessToken.value!, ), onSuccess: (result) { diff --git a/packages/chicken/lib/features/steward/presentation/pages/root/view.dart b/packages/chicken/lib/features/steward/presentation/pages/root/view.dart index d6d208d..4a25f8a 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/root/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/root/view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/chicken.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sale/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/sale/logic.dart index 2ba3b70..83ffe81 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sale/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sale/logic.dart @@ -1,19 +1,20 @@ - import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/conform_allocation/conform_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/allocated_made/allocated_made.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_core/core.dart'; class SaleLogic extends GetxController { - Rxn?> allocatedMadeModel = Rxn?>(); + Rxn?> allocatedMadeModel = + Rxn?>(); RxList guildsModel = [].obs; - Rxn stewardFreeDashboard = Rxn(); + Rxn stewardFreeDashboard = + Rxn(); StewardRootLogic rootLogic = Get.find(); @@ -24,14 +25,18 @@ class SaleLogic extends GetxController { void onReady() { super.onReady(); getStewardDashBord(); - } Future getAllocatedMade() async { safeCall( - call: () async => await rootLogic.chickenRepository.getAllocatedMade( + call: () async => await rootLogic.stewardRepository.getAllocatedMade( token: rootLogic.tokenService.accessToken.value!, - queryParameters: buildQueryParams(page: 1, pageSize: 20, search: 'filter', role: 'Steward'), + queryParameters: buildQueryParams( + page: 1, + pageSize: 20, + search: 'filter', + role: 'Steward', + ), ), onSuccess: (result) { if (result != null) { @@ -46,7 +51,7 @@ class SaleLogic extends GetxController { void confirmAllocation(ConformAllocation allocation) { safeCall( - call: () async => await rootLogic.chickenRepository.confirmAllocation( + call: () async => await rootLogic.stewardRepository.confirmAllocation( token: rootLogic.tokenService.accessToken.value!, allocation: allocation.toJson(), ), @@ -59,7 +64,7 @@ class SaleLogic extends GetxController { void denyAllocation(String token) { safeCall( - call: () async => await rootLogic.chickenRepository.denyAllocation( + call: () async => await rootLogic.stewardRepository.denyAllocation( token: rootLogic.tokenService.accessToken.value!, allocationToken: token, ), @@ -72,9 +77,10 @@ class SaleLogic extends GetxController { Future confirmAllAllocations() async { safeCall( - call: () async => await rootLogic.chickenRepository.confirmAllAllocation( + call: () async => await rootLogic.stewardRepository.confirmAllAllocation( token: rootLogic.tokenService.accessToken.value!, - allocationTokens: allocatedMadeModel.value?.map((e) => e.key!).toList() ?? [], + allocationTokens: + allocatedMadeModel.value?.map((e) => e.key!).toList() ?? [], ), onSuccess: (result) { getAllocatedMade(); @@ -83,7 +89,6 @@ class SaleLogic extends GetxController { ); } - Future getGuilds() async {} Future addSale() async {} @@ -94,7 +99,7 @@ class SaleLogic extends GetxController { Future getStewardDashBord() async { safeCall( - call: () async => await rootLogic.chickenRepository.getStewardDashboard( + call: () async => await rootLogic.stewardRepository.getStewardDashboard( token: rootLogic.tokenService.accessToken.value!, stratDate: DateTime.now().formattedDashedGregorian, endDate: DateTime.now().formattedDashedGregorian, @@ -116,22 +121,20 @@ class SaleLogic extends GetxController { super.dispose(); } - void onPopScopTaped() async { - - final now = DateTime.now(); - if (_lastBackPressed == null || now.difference(_lastBackPressed!) > Duration(seconds: 2)) { - _lastBackPressed = now; - Get.snackbar( - 'خروج از برنامه', - 'برای خروج دوباره بازگشت را بزنید', - snackPosition: SnackPosition.TOP, - duration: Duration(seconds: 2), - backgroundColor: AppColor.warning, - ); - } else { - await SystemNavigator.pop(); - } - + final now = DateTime.now(); + if (_lastBackPressed == null || + now.difference(_lastBackPressed!) > Duration(seconds: 2)) { + _lastBackPressed = now; + Get.snackbar( + 'خروج از برنامه', + 'برای خروج دوباره بازگشت را بزنید', + snackPosition: SnackPosition.TOP, + duration: Duration(seconds: 2), + backgroundColor: AppColor.warning, + ); + } else { + await SystemNavigator.pop(); + } } } diff --git a/packages/chicken/lib/features/steward/presentation/pages/sale/view.dart b/packages/chicken/lib/features/steward/presentation/pages/sale/view.dart index 35cb983..b0ccdbe 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sale/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sale/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/logic.dart index 010e50c..ac395ad 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/logic.dart @@ -1,14 +1,14 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart'; -import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/conform_allocation/conform_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/submit_steward_allocation/submit_steward_allocation.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/allocated_made/allocated_made.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sale/logic.dart'; import 'package:rasadyar_chicken/presentation/utils/string_utils.dart'; @@ -56,7 +56,8 @@ class SalesInProvinceLogic extends GetxController { final RxBool hasMoreDataAllocationsMade = true.obs; Rxn broadcastPrice = Rxn(); - Rxn selectedAllocationModelForUpdate = Rxn(); + Rxn selectedAllocationModelForUpdate = + Rxn(); SubmitStewardAllocation? tmpStewardAllocation; Rxn productionDate = Rxn(null); @@ -133,7 +134,8 @@ class SalesInProvinceLogic extends GetxController { } void _updateGovernmentalProductionDateData() { - List dates = rootLogic.stewardRemainWeight.value?.governmental ?? []; + List dates = + rootLogic.stewardRemainWeight.value?.governmental ?? []; governmentalProductionDateData = { for (var element in dates) element.day.toString().toJalali.formatCompactDate(): DayData( @@ -156,7 +158,8 @@ class SalesInProvinceLogic extends GetxController { if (isLoadingMore) { isLoadingMoreAllocationsMade.value = true; } else { - allocatedList.value = Resource>.loading(); + allocatedList.value = + Resource>.loading(); } if (searchedValue.value != null && @@ -166,7 +169,7 @@ class SalesInProvinceLogic extends GetxController { } safeCall( - call: () async => await rootLogic.chickenRepository.getAllocatedMade( + call: () async => await rootLogic.stewardRepository.getAllocatedMade( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( page: currentPage.value, @@ -181,18 +184,23 @@ class SalesInProvinceLogic extends GetxController { onSuccess: (res) async { await Future.delayed(Duration(milliseconds: 200)); if ((res?.count ?? 0) == 0) { - allocatedList.value = Resource>.empty(); + allocatedList.value = + Resource>.empty(); } else { - allocatedList.value = Resource>.success( - PaginationModel( - count: res?.count ?? 0, - next: res?.next, - previous: res?.previous, - results: isLoadingMore - ? [...(allocatedList.value.data?.results ?? []), ...(res?.results ?? [])] - : res?.results ?? [], - ), - ); + allocatedList.value = + Resource>.success( + PaginationModel( + count: res?.count ?? 0, + next: res?.next, + previous: res?.previous, + results: isLoadingMore + ? [ + ...(allocatedList.value.data?.results ?? []), + ...(res?.results ?? []), + ] + : res?.results ?? [], + ), + ); isLoadingMoreAllocationsMade.value = false; if ((allocatedList.value.data?.results?.length ?? 0) > 1) { flashingFabBgColor(); @@ -208,10 +216,14 @@ class SalesInProvinceLogic extends GetxController { void checkVerification() { var hasWeight = quotaType.value == 1 ? weight.value <= - (governmentalProductionDateData[productionDate.value?.formatCompactDate()]?.value ?? + (governmentalProductionDateData[productionDate.value + ?.formatCompactDate()] + ?.value ?? 0) : weight.value <= - (freeProductionDateData[productionDate.value?.formatCompactDate()]?.value ?? 0); + (freeProductionDateData[productionDate.value?.formatCompactDate()] + ?.value ?? + 0); isValid.value = weight.value > 0 && @@ -224,7 +236,7 @@ class SalesInProvinceLogic extends GetxController { void confirmAllocation(ConformAllocation allocation) { safeCall( - call: () async => await rootLogic.chickenRepository.confirmAllocation( + call: () async => await rootLogic.stewardRepository.confirmAllocation( token: rootLogic.tokenService.accessToken.value!, allocation: allocation.toJson(), ), @@ -237,7 +249,7 @@ class SalesInProvinceLogic extends GetxController { void denyAllocation(String token) { safeCall( - call: () async => await rootLogic.chickenRepository.denyAllocation( + call: () async => await rootLogic.stewardRepository.denyAllocation( token: rootLogic.tokenService.accessToken.value!, allocationToken: token, ), @@ -250,9 +262,11 @@ class SalesInProvinceLogic extends GetxController { Future confirmAllAllocations() async { safeCall( - call: () async => await rootLogic.chickenRepository.confirmAllAllocation( + call: () async => await rootLogic.stewardRepository.confirmAllAllocation( token: rootLogic.tokenService.accessToken.value!, - allocationTokens: allocatedList.value.data?.results?.map((e) => e.key!).toList() ?? [], + allocationTokens: + allocatedList.value.data?.results?.map((e) => e.key!).toList() ?? + [], ), onSuccess: (result) { getAllocatedMade(); @@ -263,7 +277,7 @@ class SalesInProvinceLogic extends GetxController { Future getRolesProducts() async { safeCall( - call: () async => await rootLogic.chickenRepository.getRolesProducts( + call: () async => await rootLogic.commonRepository.getRolesProducts( token: rootLogic.tokenService.accessToken.value!, ), onSuccess: (result) { @@ -278,7 +292,7 @@ class SalesInProvinceLogic extends GetxController { Future getGuilds() async { safeCall( - call: () async => await rootLogic.chickenRepository.getGuilds( + call: () async => await rootLogic.commonRepository.getGuilds( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( //queryParams: {'free': saleType.value == 2 ? true : false}, @@ -310,7 +324,7 @@ class SalesInProvinceLogic extends GetxController { Future getGuildProfile() async { await safeCall( - call: () async => await rootLogic.chickenRepository.getProfile( + call: () async => await rootLogic.commonRepository.getProfile( token: rootLogic.tokenService.accessToken.value!, ), onError: (error, stackTrace) {}, @@ -326,13 +340,17 @@ class SalesInProvinceLogic extends GetxController { allocationType: '${guildProfile.value?.steward == true ? "steward" : "guild"}_${selectedGuildModel.value?.steward == true ? "steward" : "guild"}', sellerType: guildProfile.value?.steward == true ? "Steward" : "Guild", - buyerType: selectedGuildModel.value?.steward == true ? "Steward" : "Guild", + buyerType: selectedGuildModel.value?.steward == true + ? "Steward" + : "Guild", amount: pricePerKilo.value, totalAmount: totalCost.value, weightOfCarcasses: weight.value, sellType: saleType.value == 2 ? "free" : 'exclusive', numberOfCarcasses: 0, - productionDate: productionDate.value?.toDateTime().formattedDashedGregorian, + productionDate: productionDate.value + ?.toDateTime() + .formattedDashedGregorian, quota: quotaType.value == 1 ? 'governmental' : 'free', guildKey: selectedGuildModel.value?.key, productKey: selectedProductModel.value?.key, @@ -346,16 +364,20 @@ class SalesInProvinceLogic extends GetxController { safeCall( showError: true, - call: () async => await rootLogic.chickenRepository.postSubmitStewardAllocation( - token: rootLogic.tokenService.accessToken.value!, - request: tmpStewardAllocation!, - ), + call: () async => + await rootLogic.stewardRepository.postSubmitStewardAllocation( + token: rootLogic.tokenService.accessToken.value!, + request: tmpStewardAllocation!, + ), onSuccess: (result) { clearForm(); onRefresh(); rootLogic.onRefresh(); - Future.delayed(Duration(seconds: 1), () => defaultShowSuccessMessage("ثبت موفق بود")); + Future.delayed( + Duration(seconds: 1), + () => defaultShowSuccessMessage("ثبت موفق بود"), + ); Get.back(); }, onError: (error, stackTrace) {}, @@ -364,10 +386,11 @@ class SalesInProvinceLogic extends GetxController { Future deleteAllocation(AllocatedMadeModel model) async { safeCall( - call: () async => await rootLogic.chickenRepository.deleteStewardAllocation( - token: rootLogic.tokenService.accessToken.value!, - queryParameters: {'steward_allocation_key': model.key}, - ), + call: () async => + await rootLogic.stewardRepository.deleteStewardAllocation( + token: rootLogic.tokenService.accessToken.value!, + queryParameters: {'steward_allocation_key': model.key}, + ), onSuccess: (result) { getAllocatedMade(); @@ -391,7 +414,9 @@ class SalesInProvinceLogic extends GetxController { pricePerKilo.value = item.amount ?? 0; totalCost.value = item.totalAmount ?? 0; weightController.text = weight.value.toString().separatedByComma; - pricePerKiloController.text = pricePerKilo.value.toString().separatedByComma; + pricePerKiloController.text = pricePerKilo.value + .toString() + .separatedByComma; totalCostController.text = totalCost.value.toString().separatedByComma; isValid.value = true; productionDate.value = item.productionDate.toJalali; @@ -425,16 +450,20 @@ class SalesInProvinceLogic extends GetxController { safeCall( showError: true, - call: () async => await rootLogic.chickenRepository.updateStewardAllocation( - token: rootLogic.tokenService.accessToken.value!, - request: updatedAllocationModel, - ), + call: () async => + await rootLogic.stewardRepository.updateStewardAllocation( + token: rootLogic.tokenService.accessToken.value!, + request: updatedAllocationModel, + ), onSuccess: (result) { clearForm(); onRefresh(); rootLogic.onRefresh(); - Future.delayed(Duration(seconds: 1), () => defaultShowSuccessMessage("ویرایش موفق بود")); + Future.delayed( + Duration(seconds: 1), + () => defaultShowSuccessMessage("ویرایش موفق بود"), + ); Get.back(); }, onError: (error, stackTrace) {}, @@ -473,14 +502,16 @@ class SalesInProvinceLogic extends GetxController { Future getBroadcastPrice() async { safeCall( - call: () async => await rootLogic.chickenRepository.getBroadcastPrice( + call: () async => await rootLogic.commonRepository.getBroadcastPrice( token: rootLogic.tokenService.accessToken.value!, ), onSuccess: (result) { broadcastPrice.value = result; if (broadcastPrice.value?.active == true) { pricePerKilo.value = broadcastPrice.value?.stewardPrice ?? 0; - pricePerKiloController.text = pricePerKilo.value.toString().separatedByComma; + pricePerKiloController.text = pricePerKilo.value + .toString() + .separatedByComma; priceType.value = 2; } }, @@ -492,7 +523,11 @@ class SalesInProvinceLogic extends GetxController { toggleExpansion(); currentPage.value = 1; hasMoreDataAllocationsMade.value = true; - await Future.wait([getAllocatedMade(), getRolesProducts(), rootLogic.onRefresh()]); + await Future.wait([ + getAllocatedMade(), + getRolesProducts(), + rootLogic.onRefresh(), + ]); } void toggleExpansion({int? index}) { diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/view.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/view.dart index 0cc6166..1f4641f 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/allocated_made/allocated_made.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sales_in_province/widgets/cu_sale_in_provience.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/utils/string_utils.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/widgets/cu_sale_in_provience.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/widgets/cu_sale_in_provience.dart index 2aba1e0..dc59013 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/widgets/cu_sale_in_provience.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_in_province/widgets/cu_sale_in_provience.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sales_in_province/logic.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/logic.dart index 2456d7d..cd5e7cb 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/logic.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sale/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sales_out_of_province_buyers/logic.dart'; @@ -18,9 +18,11 @@ class SalesOutOfProvinceLogic extends GetxController { SaleLogic saleLogic = Get.find(); - SalesOutOfProvinceSalesListLogic saleListLogic = Get.find(); + SalesOutOfProvinceSalesListLogic saleListLogic = + Get.find(); - SalesOutOfProvinceBuyersLogic buyerLogic = Get.find(); + SalesOutOfProvinceBuyersLogic buyerLogic = + Get.find(); RxBool isExpanded = false.obs; RxInt currentPage = 1.obs; @@ -99,7 +101,8 @@ class SalesOutOfProvinceLogic extends GetxController { } void _updateGovernmentalProductionDateData() { - List dates = rootLogic.stewardRemainWeight.value?.governmental ?? []; + List dates = + rootLogic.stewardRemainWeight.value?.governmental ?? []; governmentalProductionDateData = { for (var element in dates) element.day.toString().toJalali.formatCompactDate(): DayData( @@ -135,7 +138,7 @@ class SalesOutOfProvinceLogic extends GetxController { salesList.value = Resource>.loading(); } await safeCall( - call: () => rootLogic.chickenRepository.getStewardFreeSaleBar( + call: () => rootLogic.stewardRepository.getStewardFreeSaleBar( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( pageSize: 20, @@ -150,16 +153,21 @@ class SalesOutOfProvinceLogic extends GetxController { ), onSuccess: (res) { if ((res?.count ?? 0) == 0) { - salesList.value = Resource>.empty(); + salesList.value = + Resource>.empty(); } else { - salesList.value = Resource>.success( - PaginationModel( - count: res?.count ?? 0, - next: res?.next, - previous: res?.previous, - results: [...(salesList.value.data?.results ?? []), ...(res?.results ?? [])], - ), - ); + salesList.value = + Resource>.success( + PaginationModel( + count: res?.count ?? 0, + next: res?.next, + previous: res?.previous, + results: [ + ...(salesList.value.data?.results ?? []), + ...(res?.results ?? []), + ], + ), + ); isLoadingMoreAllocationsMade.value = false; } @@ -173,7 +181,8 @@ class SalesOutOfProvinceLogic extends GetxController { saleWeightController.addListener(() { checkSalesFormValid(); weight.value = int.parse(saleWeightController.text.clearComma); - var res = (weight / selectedProduct.value!.weightAverage!.toInt()).round(); + var res = (weight / selectedProduct.value!.weightAverage!.toInt()) + .round(); saleCountController.text = res.separatedByComma; }); ever(selectedBuyer, (_) => checkSalesFormValid); @@ -192,7 +201,8 @@ class SalesOutOfProvinceLogic extends GetxController { void setEditDataSales(StewardFreeSaleBar item) { quarantineCodeController.text = item.clearanceCode ?? ''; - saleWeightController.text = item.weightOfCarcasses?.toInt().toString() ?? ''; + saleWeightController.text = + item.weightOfCarcasses?.toInt().toString() ?? ''; saleDate.value = Jalali.fromDateTime(DateTime.parse(item.date!)); selectedCity.value = IranProvinceCityModel(name: item.city); selectedBuyer.value = buyerLogic.buyerList.value.data?.results?.firstWhere( @@ -204,13 +214,15 @@ class SalesOutOfProvinceLogic extends GetxController { quotaType.value = item.quota == 'governmental' ? 1 : 2; isSaleSubmitButtonEnabled.value = true; productionDate.value = item.productionDate.toJalali; - pricePerKiloController.text = pricePerKilo.value.toString().separatedByComma; + pricePerKiloController.text = pricePerKilo.value + .toString() + .separatedByComma; totalCostController.text = totalCost.value.toString().separatedByComma; } Future deleteStewardPurchaseOutOfProvince(String key) async { await safeCall( - call: () => rootLogic.chickenRepository.deleteOutProvinceStewardFreeBar( + call: () => rootLogic.stewardRepository.deleteOutProvinceStewardFreeBar( token: rootLogic.tokenService.accessToken.value!, key: key, ), @@ -228,11 +240,13 @@ class SalesOutOfProvinceLogic extends GetxController { productKey: selectedProduct.value?.key, saleType: saleType.value == 2 ? 'free' : 'exclusive', quota: quotaType.value == 1 ? 'governmental' : 'free', - productionDate: productionDate.value?.toDateTime().formattedDashedGregorian, + productionDate: productionDate.value + ?.toDateTime() + .formattedDashedGregorian, ); await safeCall( showError: true, - call: () => rootLogic.chickenRepository.createOutProvinceStewardFreeBar( + call: () => rootLogic.stewardRepository.createOutProvinceStewardFreeBar( token: rootLogic.tokenService.accessToken.value!, body: requestBody, ), @@ -272,7 +286,7 @@ class SalesOutOfProvinceLogic extends GetxController { key: key, ); await safeCall( - call: () => rootLogic.chickenRepository.updateOutProvinceStewardFreeBar( + call: () => rootLogic.stewardRepository.updateOutProvinceStewardFreeBar( token: rootLogic.tokenService.accessToken.value!, body: requestBody, ), @@ -308,7 +322,7 @@ class SalesOutOfProvinceLogic extends GetxController { ); await safeCall( showError: true, - call: () => rootLogic.chickenRepository.updateOutProvinceStewardFreeBar( + call: () => rootLogic.stewardRepository.updateOutProvinceStewardFreeBar( token: rootLogic.tokenService.accessToken.value!, body: requestBody, ), @@ -348,7 +362,7 @@ class SalesOutOfProvinceLogic extends GetxController { Future getBroadcastPrice() async { safeCall( - call: () async => await rootLogic.chickenRepository.getBroadcastPrice( + call: () async => await rootLogic.commonRepository.getBroadcastPrice( token: rootLogic.tokenService.accessToken.value!, ), onSuccess: (result) { @@ -375,7 +389,9 @@ class SalesOutOfProvinceLogic extends GetxController { saleDate.value = Jalali.now(); Future.delayed( Duration(milliseconds: 300), - () => defaultShowErrorMessage("تاریخ تولید نمی تواند قبل از تاریخ فروش باشد"), + () => defaultShowErrorMessage( + "تاریخ تولید نمی تواند قبل از تاریخ فروش باشد", + ), ); } } diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/view.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/view.dart index ac3d5d7..e29bca5 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province/view.dart @@ -1,9 +1,9 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/utils/string_utils.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/logic.dart index 4c992d8..e54f1d6 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/logic.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sale/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sales_out_of_province/logic.dart'; @@ -9,11 +9,12 @@ import 'package:rasadyar_chicken/presentation/utils/utils.dart'; import 'package:rasadyar_core/core.dart'; class SalesOutOfProvinceBuyersLogic extends GetxController { - StewardRootLogic rootLogic = Get.find(); + StewardRootLogic rootLogic = Get.find(); SaleLogic get saleLogic => Get.find(); - SalesOutOfProvinceLogic get saleOutOfProvince => Get.find(); + SalesOutOfProvinceLogic get saleOutOfProvince => + Get.find(); RxInt currentPage = 1.obs; RxInt expandedListIndex = (-1).obs; @@ -74,11 +75,14 @@ class SalesOutOfProvinceBuyersLogic extends GetxController { super.onClose(); } - Future getOutProvinceCarcassesBuyer([bool isLoadingMore = false]) async { + Future getOutProvinceCarcassesBuyer([ + bool isLoadingMore = false, + ]) async { if (isLoadingMore) { isLoadingMoreAllocationsMade.value = true; } else { - buyerList.value = Resource>.loading(); + buyerList.value = + Resource>.loading(); } if (searchedValue.value != null && @@ -88,7 +92,7 @@ class SalesOutOfProvinceBuyersLogic extends GetxController { } await safeCall( - call: () => rootLogic.chickenRepository.getOutProvinceCarcassesBuyer( + call: () => rootLogic.stewardRepository.getOutProvinceCarcassesBuyer( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( pageSize: 20, @@ -99,19 +103,25 @@ class SalesOutOfProvinceBuyersLogic extends GetxController { value: searchedValue.value ?? '', ), ), - onError: (error, stackTrace) => isLoadingMoreAllocationsMade.value = false, + onError: (error, stackTrace) => + isLoadingMoreAllocationsMade.value = false, onSuccess: (res) { if ((res?.count ?? 0) == 0) { - buyerList.value = Resource>.empty(); + buyerList.value = + Resource>.empty(); } else { - buyerList.value = Resource>.success( - PaginationModel( - count: res?.count ?? 0, - next: res?.next, - previous: res?.previous, - results: [...(buyerList.value.data?.results ?? []), ...(res?.results ?? [])], - ), - ); + buyerList.value = + Resource>.success( + PaginationModel( + count: res?.count ?? 0, + next: res?.next, + previous: res?.previous, + results: [ + ...(buyerList.value.data?.results ?? []), + ...(res?.results ?? []), + ], + ), + ); isLoadingMoreAllocationsMade.value = false; } @@ -130,8 +140,9 @@ class SalesOutOfProvinceBuyersLogic extends GetxController { Future getCites() async { await safeCall( - call: () => - rootLogic.chickenRepository.getCity(provinceName: selectedProvince.value?.name ?? ''), + call: () => rootLogic.commonRepository.getCity( + provinceName: selectedProvince.value?.name ?? '', + ), onSuccess: (result) { if (result != null && result.isNotEmpty) { cites.value = result; @@ -175,7 +186,7 @@ class SalesOutOfProvinceBuyersLogic extends GetxController { mobile: buyerPhoneController.text, role: 'Steward', ); - await rootLogic.chickenRepository.createOutProvinceCarcassesBuyer( + await rootLogic.stewardRepository.createOutProvinceCarcassesBuyer( token: rootLogic.tokenService.accessToken.value!, body: buyer, ); @@ -209,12 +220,12 @@ class SalesOutOfProvinceBuyersLogic extends GetxController { getOutProvinceCarcassesBuyer(); } - Future onRefresh() async { currentPage.value = 1; await rootLogic.onRefresh(); await getOutProvinceCarcassesBuyer(); } + void toggleExpansion({int? index}) { if (expandedListIndex.value == index || index == null) { expandedListIndex.value = -1; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/view.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/view.dart index 6bd61f9..bbd8051 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_buyers/view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/filter_bottom_sheet.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/logic.dart index d6a82cd..0c5c379 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/logic.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; -import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/request/steward_free_sale_bar/steward_free_sale_bar_request.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sale/logic.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/sales_out_of_province_buyers/logic.dart'; @@ -15,7 +15,8 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { SaleLogic saleLogic = Get.find(); - SalesOutOfProvinceBuyersLogic buyerLogic = Get.find(); + SalesOutOfProvinceBuyersLogic buyerLogic = + Get.find(); RxInt selectedSegmentIndex = 0.obs; RxBool isExpanded = false.obs; @@ -32,12 +33,9 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { //TODO add this to Di ImagePicker imagePicker = ImagePicker(); - - RxInt saleType = 1.obs; RxInt quotaType = 1.obs; - GlobalKey formKey = GlobalKey(); TextEditingController quarantineCodeController = TextEditingController(); TextEditingController saleWeightController = TextEditingController(); @@ -82,7 +80,7 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { salesList.value = Resource>.loading(); } await safeCall( - call: () => rootLogic.chickenRepository.getStewardFreeSaleBar( + call: () => rootLogic.stewardRepository.getStewardFreeSaleBar( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( pageSize: 20, @@ -97,16 +95,21 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { ), onSuccess: (res) { if ((res?.count ?? 0) == 0) { - salesList.value = Resource>.empty(); + salesList.value = + Resource>.empty(); } else { - salesList.value = Resource>.success( - PaginationModel( - count: res?.count ?? 0, - next: res?.next, - previous: res?.previous, - results: [...(salesList.value.data?.results ?? []), ...(res?.results ?? [])], - ), - ); + salesList.value = + Resource>.success( + PaginationModel( + count: res?.count ?? 0, + next: res?.next, + previous: res?.previous, + results: [ + ...(salesList.value.data?.results ?? []), + ...(res?.results ?? []), + ], + ), + ); isLoadingMoreAllocationsMade.value = false; } @@ -115,7 +118,6 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { } void setupListeners() { - quarantineCodeController.addListener(checkSalesFormValid); ever(selectedBuyer, (_) => checkSalesFormValid); ever(selectedProduct, (_) => checkSalesFormValid); @@ -133,7 +135,8 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { void setEditDataSales(StewardFreeSaleBar item) { quarantineCodeController.text = item.clearanceCode ?? ''; - saleWeightController.text = item.weightOfCarcasses?.toInt().toString() ?? ''; + saleWeightController.text = + item.weightOfCarcasses?.toInt().toString() ?? ''; saleDate.value = Jalali.fromDateTime(DateTime.parse(item.date!)); selectedCity.value = IranProvinceCityModel(name: item.city); selectedBuyer.value = buyerLogic.buyerList.value.data?.results?.firstWhere( @@ -147,7 +150,7 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { Future deleteStewardPurchaseOutOfProvince(String key) async { //todo /* await safeCall( - call: () => rootLogic.chickenRepository + call: () => rootLogic.commonRepository .editStewardPurchasesOutSideOfTheProvince( token: rootLogic.tokenService.accessToken.value!, stewardFreeBarKey: key, @@ -169,7 +172,7 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { productKey: selectedProduct.value?.key, ); await safeCall( - call: () => rootLogic.chickenRepository.createOutProvinceStewardFreeBar( + call: () => rootLogic.stewardRepository.createOutProvinceStewardFreeBar( token: rootLogic.tokenService.accessToken.value!, body: requestBody, ), @@ -198,7 +201,7 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { key: key, ); await safeCall( - call: () => rootLogic.chickenRepository.updateOutProvinceStewardFreeBar( + call: () => rootLogic.stewardRepository.updateOutProvinceStewardFreeBar( token: rootLogic.tokenService.accessToken.value!, body: requestBody, ), @@ -214,6 +217,7 @@ class SalesOutOfProvinceSalesListLogic extends GetxController { selectedProduct.value = null; key = null; } + void toggleExpansion({int? index}) { if (expandedListIndex.value == index || index == null) { expandedListIndex.value = -1; diff --git a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/view.dart b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/view.dart index e1335db..7f37994 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/sales_out_of_province_sales_list/view.dart @@ -1,9 +1,9 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_free_sale_bar/steward_free_sale_bar.dart'; import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/segmentation/logic.dart b/packages/chicken/lib/features/steward/presentation/pages/segmentation/logic.dart index cb6b66c..5cb2a4a 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/segmentation/logic.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/segmentation/logic.dart @@ -1,10 +1,10 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart'; import 'package:rasadyar_chicken/presentation/utils/utils.dart'; import 'package:rasadyar_core/core.dart'; @@ -48,7 +48,10 @@ class SegmentationLogic extends GetxController { void onInit() { super.onInit(); routesName = ['قطعه‌بندی'].toList(); - once(rootLogic.rolesProductsModel, (callback) => selectedProduct.value = callback.first); + once( + rootLogic.rolesProductsModel, + (callback) => selectedProduct.value = callback.first, + ); getAllSegmentation(); getGuilds(); @@ -65,7 +68,8 @@ class SegmentationLogic extends GetxController { } void _updateGovernmentalProductionDateData() { - List dates = rootLogic.stewardRemainWeight.value?.governmental ?? []; + List dates = + rootLogic.stewardRemainWeight.value?.governmental ?? []; governmentalProductionDateData = { for (var element in dates) element.day.toString().toJalali.formatCompactDate(): DayData( @@ -90,7 +94,6 @@ class SegmentationLogic extends GetxController { setUpListener(); } - void setSearchValue(String? value) { searchedValue.value = value?.trim(); } @@ -134,14 +137,16 @@ class SegmentationLogic extends GetxController { hasWeight && productionDate.value != null && weight > 0 && - (segmentType.value == 1 || (segmentType.value == 2 && selectedGuildModel.value != null)); + (segmentType.value == 1 || + (segmentType.value == 2 && selectedGuildModel.value != null)); } Future getAllSegmentation([bool isLoadingMore = false]) async { if (isLoadingMore) { isLoadingMoreAllocationsMade.value = true; } else { - segmentationList.value = Resource>.loading(); + segmentationList.value = + Resource>.loading(); } if (searchedValue.value != null && @@ -152,7 +157,7 @@ class SegmentationLogic extends GetxController { await safeCall( showError: true, - call: () async => await rootLogic.chickenRepository.getSegmentation( + call: () async => await rootLogic.commonRepository.getSegmentation( token: rootLogic.tokenService.accessToken.value!, queryParameters: buildQueryParams( pageSize: 20, @@ -167,19 +172,21 @@ class SegmentationLogic extends GetxController { onSuccess: (result) { if ((result?.count ?? 0) == 0) { - segmentationList.value = Resource>.empty(); + segmentationList.value = + Resource>.empty(); } else { - segmentationList.value = Resource>.success( - PaginationModel( - count: result?.count ?? 0, - next: result?.next, - previous: result?.previous, - results: [ - ...(segmentationList.value.data?.results ?? []), - ...(result?.results ?? []), - ], - ), - ); + segmentationList.value = + Resource>.success( + PaginationModel( + count: result?.count ?? 0, + next: result?.next, + previous: result?.previous, + results: [ + ...(segmentationList.value.data?.results ?? []), + ...(result?.results ?? []), + ], + ), + ); isLoadingMoreAllocationsMade.value = false; } @@ -191,7 +198,7 @@ class SegmentationLogic extends GetxController { await safeCall( showError: true, showSuccess: true, - call: () => rootLogic.chickenRepository.deleteSegmentation( + call: () => rootLogic.commonRepository.deleteSegmentation( token: rootLogic.tokenService.accessToken.value!, key: key, ), @@ -202,12 +209,14 @@ class SegmentationLogic extends GetxController { var res = true; safeCall( showError: true, - call: () async => await rootLogic.chickenRepository.editSegmentation( + call: () async => await rootLogic.commonRepository.editSegmentation( token: rootLogic.tokenService.accessToken.value!, model: SegmentationModel( key: selectedSegment.value?.key, weight: int.tryParse(weightController.text.clearComma) ?? 0, - productionDate: productionDate.value?.toDateTime().formattedDashedGregorian, + productionDate: productionDate.value + ?.toDateTime() + .formattedDashedGregorian, ), ), onSuccess: (result) { @@ -230,14 +239,18 @@ class SegmentationLogic extends GetxController { quota: quotaType.value == 1 ? 'governmental' : 'free', ); if (segmentType.value == 2) { - segmentationModel = segmentationModel.copyWith(guildKey: selectedGuildModel.value?.key); + segmentationModel = segmentationModel.copyWith( + guildKey: selectedGuildModel.value?.key, + ); } segmentationModel = segmentationModel.copyWith( - productionDate: productionDate.value?.toDateTime().formattedDashedGregorian, + productionDate: productionDate.value + ?.toDateTime() + .formattedDashedGregorian, ); await safeCall( showError: true, - call: () async => await rootLogic.chickenRepository.createSegmentation( + call: () async => await rootLogic.commonRepository.createSegmentation( token: rootLogic.tokenService.accessToken.value!, model: segmentationModel, ), @@ -260,9 +273,12 @@ class SegmentationLogic extends GetxController { Future getGuilds() async { safeCall( - call: () async => await rootLogic.chickenRepository.getGuilds( + call: () async => await rootLogic.commonRepository.getGuilds( token: rootLogic.tokenService.accessToken.value!, - queryParameters: buildQueryParams(queryParams: {'all': true}, role: 'Steward'), + queryParameters: buildQueryParams( + queryParams: {'all': true}, + role: 'Steward', + ), ), onSuccess: (result) { if (result != null) { @@ -286,7 +302,7 @@ class SegmentationLogic extends GetxController { Future getBroadcastPrice() async { safeCall( - call: () async => await rootLogic.chickenRepository.getBroadcastPrice( + call: () async => await rootLogic.commonRepository.getBroadcastPrice( token: rootLogic.tokenService.accessToken.value!, ), onSuccess: (result) { diff --git a/packages/chicken/lib/features/steward/presentation/pages/segmentation/view.dart b/packages/chicken/lib/features/steward/presentation/pages/segmentation/view.dart index 45277bc..30fadfd 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/segmentation/view.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/segmentation/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; +import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/segmentation/widgets/cu_bottom_sheet.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/filter_bottom_sheet.dart'; diff --git a/packages/chicken/lib/features/steward/presentation/pages/segmentation/widgets/cu_bottom_sheet.dart b/packages/chicken/lib/features/steward/presentation/pages/segmentation/widgets/cu_bottom_sheet.dart index 0b3ab31..00cac14 100644 --- a/packages/chicken/lib/features/steward/presentation/pages/segmentation/widgets/cu_bottom_sheet.dart +++ b/packages/chicken/lib/features/steward/presentation/pages/segmentation/widgets/cu_bottom_sheet.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; -import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart'; import 'package:rasadyar_chicken/features/steward/presentation/pages/segmentation/logic.dart'; import 'package:rasadyar_core/core.dart'; diff --git a/packages/chicken/lib/features/steward/steward.dart b/packages/chicken/lib/features/steward/steward.dart index 7aa6fff..871d572 100644 --- a/packages/chicken/lib/features/steward/steward.dart +++ b/packages/chicken/lib/features/steward/steward.dart @@ -1,2 +1,3 @@ +export 'data/di/steward_di.dart'; export 'presentation/routes/routes.dart'; export 'presentation/routes/pages.dart'; diff --git a/packages/chicken/lib/hive_registrar.g.dart b/packages/chicken/lib/hive_registrar.g.dart index 25d0c02..f96cbe0 100644 --- a/packages/chicken/lib/hive_registrar.g.dart +++ b/packages/chicken/lib/hive_registrar.g.dart @@ -3,7 +3,7 @@ // Check in to version control import 'package:hive_ce/hive.dart'; -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart'; extension HiveRegistrar on HiveInterface { void registerAdapters() { diff --git a/packages/chicken/lib/presentation/routes/routes.dart b/packages/chicken/lib/presentation/routes/routes.dart index 7ca81df..b80b009 100644 --- a/packages/chicken/lib/presentation/routes/routes.dart +++ b/packages/chicken/lib/presentation/routes/routes.dart @@ -1,7 +1,14 @@ +import 'package:rasadyar_chicken/features/common/presentation/routes/routes.dart'; + sealed class ChickenRoutes { ChickenRoutes._(); static const _base = '/chicken'; + static const auth = CommonRoutes.auth; + + + + //endregion diff --git a/packages/chicken/lib/presentation/widget/base_page/logic.dart b/packages/chicken/lib/presentation/widget/base_page/logic.dart index 1c63f60..4c5c387 100644 --- a/packages/chicken/lib/presentation/widget/base_page/logic.dart +++ b/packages/chicken/lib/presentation/widget/base_page/logic.dart @@ -1,14 +1,16 @@ import 'package:rasadyar_chicken/data/di/chicken_di.dart'; -import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart'; +import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository.dart'; import 'package:rasadyar_core/core.dart'; -import '../../../data/models/response/user_profile/user_profile.dart'; +import '../../../features/common/data/model/response/user_profile/user_profile.dart'; class ChickenBaseLogic extends BasePageLogic { var tokenService = Get.find(); - ChickenRepository chickenRepository = diChicken.get(); + CommonRepository commonRepository = diChicken.get(); - Rx> userProfile = Rx>(Resource.loading()); + Rx> userProfile = Rx>( + Resource.loading(), + ); @override void onInit() { @@ -19,8 +21,9 @@ class ChickenBaseLogic extends BasePageLogic { Future getUserProfile() async { userProfile.value = Resource.loading(); await safeCall( - call: () async => - await chickenRepository.getUserProfile(token: tokenService.accessToken.value!), + call: () async => await commonRepository.getUserProfile( + token: tokenService.accessToken.value!, + ), onSuccess: (result) { if (result != null) { userProfile.value = Resource.success(result); diff --git a/packages/chicken/test/data/data_source/local/chicken_local_imp_test.dart b/packages/chicken/test/data/data_source/local/chicken_local_imp_test.dart index 54fd1f2..dac5423 100644 --- a/packages/chicken/test/data/data_source/local/chicken_local_imp_test.dart +++ b/packages/chicken/test/data/data_source/local/chicken_local_imp_test.dart @@ -1,7 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; -import 'package:rasadyar_chicken/data/data_source/local/chicken_local_imp.dart'; -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local_imp.dart'; +import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart'; import 'package:rasadyar_core/core.dart'; class MockHiveLocalStorage extends Mock implements HiveLocalStorage {} diff --git a/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart b/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart index 707a977..96271c8 100644 --- a/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart +++ b/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart @@ -1,8 +1,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote_imp.dart'; -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote_imp.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; import 'package:rasadyar_core/core.dart'; class MockDioRemote extends Mock implements DioRemote {} diff --git a/packages/chicken/test/data/models/response/user_profile_model/user_profile_model_test.dart b/packages/chicken/test/data/models/response/user_profile_model/user_profile_model_test.dart index c0334a0..91b9cef 100644 --- a/packages/chicken/test/data/models/response/user_profile_model/user_profile_model_test.dart +++ b/packages/chicken/test/data/models/response/user_profile_model/user_profile_model_test.dart @@ -1,5 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; void main() { group('UserProfileModel', () { diff --git a/packages/chicken/test/data/repositories/auth/auth_repository_imp_test.dart b/packages/chicken/test/data/repositories/auth/auth_repository_imp_test.dart index 3dea869..d860a24 100644 --- a/packages/chicken/test/data/repositories/auth/auth_repository_imp_test.dart +++ b/packages/chicken/test/data/repositories/auth/auth_repository_imp_test.dart @@ -1,8 +1,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote.dart'; -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; import 'package:rasadyar_chicken/data/repositories/auth/auth_repository_imp.dart'; class MockAuthRemoteDataSource extends Mock implements AuthRemoteDataSource {} diff --git a/packages/chicken/test/data/repositories/poultry_science/poultry_science_repository_test.dart b/packages/chicken/test/data/repositories/poultry_science/poultry_science_repository_test.dart deleted file mode 100644 index 02d66ae..0000000 --- a/packages/chicken/test/data/repositories/poultry_science/poultry_science_repository_test.dart +++ /dev/null @@ -1,145 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:mocktail/mocktail.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote.dart'; -import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart'; -import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository_imp.dart'; -import 'package:rasadyar_core/core.dart'; - -class _MockRemote extends Mock implements PoultryScienceRemoteDatasource {} - -void main() { - setUpAll(() { - registerFallbackValue(FormData()); - registerFallbackValue(const KillRegistrationRequest()); - registerFallbackValue({}); - }); - - group('PoultryScienceRepositoryImp', () { - late _MockRemote remote; - late PoultryScienceRepositoryImp repo; - - setUp(() { - remote = _MockRemote(); - repo = PoultryScienceRepositoryImp(remote); - }); - - test('getHomePoultry delegates', () async { - when(() => remote.getHomePoultryScience(token: any(named: 'token'), type: any(named: 'type'))) - .thenAnswer((_) async => null); - final res = await repo.getHomePoultry(token: 't', type: 'x'); - expect(res, null); - verify(() => remote.getHomePoultryScience(token: 't', type: 'x')).called(1); - }); - - test('getHatchingPoultry delegates', () async { - when(() => remote.getHatchingPoultry(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getHatchingPoultry(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getHatchingPoultry(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('submitPoultryScienceReport delegates', () async { - when(() => remote.submitPoultryScienceReport(token: any(named: 'token'), data: any(named: 'data'), onSendProgress: any(named: 'onSendProgress'))) - .thenAnswer((_) async {}); - await repo.submitPoultryScienceReport(token: 't', data: FormData()); - verify(() => remote.submitPoultryScienceReport(token: 't', data: any(named: 'data'), onSendProgress: any(named: 'onSendProgress'))).called(1); - }); - - test('getHatchingPoultryReport delegates', () async { - when(() => remote.getPoultryScienceReport(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getHatchingPoultryReport(token: 't', queryParameters: {'q': 1}); - expect(res, null); - verify(() => remote.getPoultryScienceReport(token: 't', queryParameters: {'q': 1})).called(1); - }); - - test('getPoultryScienceFarmList delegates', () async { - when(() => remote.getPoultryScienceFarmList(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getPoultryScienceFarmList(token: 't', queryParameters: {'p': 1}); - expect(res, null); - verify(() => remote.getPoultryScienceFarmList(token: 't', queryParameters: {'p': 1})).called(1); - }); - - test('getApprovedPrice delegates', () async { - when(() => remote.getApprovedPrice(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getApprovedPrice(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getApprovedPrice(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('getAllPoultry delegates', () async { - when(() => remote.getAllPoultry(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getAllPoultry(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getAllPoultry(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('getSellForFreezing delegates', () async { - when(() => remote.getSellForFreezing(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getSellForFreezing(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getSellForFreezing(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('getPoultryExport delegates', () async { - when(() => remote.getPoultryExport(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getPoultryExport(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getPoultryExport(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('getUserPoultry delegates', () async { - when(() => remote.getUserPoultry(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getUserPoultry(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getUserPoultry(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('getPoultryHatching delegates', () async { - when(() => remote.getPoultryHatching(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getPoultryHatching(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getPoultryHatching(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('getKillHouseList delegates', () async { - when(() => remote.getKillHouseList(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getKillHouseList(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getKillHouseList(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('submitKillRegistration delegates', () async { - when(() => remote.submitKillRegistration(token: any(named: 'token'), request: any(named: 'request'))) - .thenAnswer((_) async {}); - await repo.submitKillRegistration(token: 't', request: const KillRegistrationRequest()); - verify(() => remote.submitKillRegistration(token: 't', request: any(named: 'request'))).called(1); - }); - - test('getPoultryOderList delegates', () async { - when(() => remote.getPoultryOderList(token: any(named: 'token'), queryParameters: any(named: 'queryParameters'))) - .thenAnswer((_) async => null); - final res = await repo.getPoultryOderList(token: 't', queryParameters: {'a': 1}); - expect(res, null); - verify(() => remote.getPoultryOderList(token: 't', queryParameters: {'a': 1})).called(1); - }); - - test('deletePoultryOder delegates', () async { - when(() => remote.deletePoultryOder(token: any(named: 'token'), orderId: any(named: 'orderId'))) - .thenAnswer((_) async {}); - await repo.deletePoultryOder(token: 't', orderId: 'id'); - verify(() => remote.deletePoultryOder(token: 't', orderId: 'id')).called(1); - }); - }); -} - - diff --git a/packages/chicken/test/integration/auth_flow_integration_test.dart b/packages/chicken/test/integration/auth_flow_integration_test.dart index a693e9f..831c844 100644 --- a/packages/chicken/test/integration/auth_flow_integration_test.dart +++ b/packages/chicken/test/integration/auth_flow_integration_test.dart @@ -1,8 +1,8 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mocktail/mocktail.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote.dart'; -import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart'; -import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart'; +import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart'; +import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart'; import 'package:rasadyar_chicken/data/repositories/auth/auth_repository_imp.dart'; class MockAuthRemoteDataSource extends Mock implements AuthRemoteDataSource {} diff --git a/packages/chicken/test/integration/poultry_science_integration_test.dart b/packages/chicken/test/integration/poultry_science_integration_test.dart deleted file mode 100644 index 1a28677..0000000 --- a/packages/chicken/test/integration/poultry_science_integration_test.dart +++ /dev/null @@ -1,641 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:mocktail/mocktail.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote.dart'; -import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart'; -import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart'; -import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart'; -import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; -import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart'; -import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart'; -import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository_imp.dart'; -import 'package:rasadyar_core/core.dart'; - -class MockPoultryScienceRemoteDataSource extends Mock - implements PoultryScienceRemoteDatasource {} - -void main() { - late PoultryScienceRepositoryImp poultryScienceRepository; - late MockPoultryScienceRemoteDataSource mockRemote; - - setUp(() { - mockRemote = MockPoultryScienceRemoteDataSource(); - poultryScienceRepository = PoultryScienceRepositoryImp(mockRemote); - }); - - group('Poultry Science Integration Tests', () { - const token = 'test-token'; - - group('Complete Poultry Science Home Flow', () { - test('should complete full poultry science home workflow', () async { - // Arrange - const type = 'hatching'; - - final expectedHomeModel = HomePoultryScienceModel( - farmCount: 5, - hatchingCount: 1000, - hatchingQuantity: 500, - hatchingLeftOver: 200, - hatchingLosses: 50, - hatchingKilledQuantity: 250, - hatchingMaxAge: 45, - hatchingMinAge: 30, - ); - - final expectedHatching = [ - HatchingModel( - id: 1, - key: 'hatching-1', - date: '2024-01-01', - quantity: 100, - state: 'active', - ), - ]; - final expectedHatchingPagination = PaginationModel( - results: expectedHatching, - count: 1, - next: null, - previous: null, - ); - - // Mock the flow - when( - () => mockRemote.getHomePoultryScience(token: token, type: type), - ).thenAnswer((_) async => expectedHomeModel); - - when( - () => mockRemote.getHatchingPoultry( - token: token, - queryParameters: any(named: 'queryParameters'), - ), - ).thenAnswer((_) async => expectedHatchingPagination); - - // Act - Step 1: Get home poultry science data - final homeModel = await poultryScienceRepository.getHomePoultry( - token: token, - type: type, - ); - - // Act - Step 2: Get hatching poultry data - final hatchingData = await poultryScienceRepository.getHatchingPoultry( - token: token, - queryParameters: {'page': '1', 'limit': '10'}, - ); - - // Assert - expect(homeModel, equals(expectedHomeModel)); - expect(hatchingData, equals(expectedHatchingPagination)); - - verify( - () => mockRemote.getHomePoultryScience(token: token, type: type), - ).called(1); - verify( - () => mockRemote.getHatchingPoultry( - token: token, - queryParameters: any(named: 'queryParameters'), - ), - ).called(1); - }); - }); - - group('Hatching Report Management Flow', () { - test('should complete hatching report management workflow', () async { - // Arrange - final queryParameters = {'page': '1', 'limit': '10'}; - - final expectedReports = [ - HatchingReport( - id: 1, - key: 'report-1', - date: DateTime.parse('2024-01-01'), - state: 'completed', - ), - ]; - final expectedPagination = PaginationModel( - results: expectedReports, - count: 1, - next: null, - previous: null, - ); - - final mockFormData = MockFormData(); - - // Mock the flow - when( - () => mockRemote.getPoultryScienceReport( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedPagination); - - when( - () => mockRemote.submitPoultryScienceReport( - token: token, - data: mockFormData, - onSendProgress: any(named: 'onSendProgress'), - ), - ).thenAnswer((_) async {}); - - // Act - Step 1: Get hatching reports - final reports = await poultryScienceRepository.getHatchingPoultryReport( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 2: Submit new report - await poultryScienceRepository.submitPoultryScienceReport( - token: token, - data: mockFormData, - ); - - // Assert - expect(reports, equals(expectedPagination)); - - verify( - () => mockRemote.getPoultryScienceReport( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.submitPoultryScienceReport( - token: token, - data: mockFormData, - onSendProgress: any(named: 'onSendProgress'), - ), - ).called(1); - }); - }); - - group('Poultry Farm Management Flow', () { - test('should complete poultry farm management workflow', () async { - // Arrange - final queryParameters = {'page': '1', 'limit': '10'}; - - final expectedFarms = [ - PoultryFarm( - id: 1, - key: 'farm-1', - unitName: 'Farm 1', - totalCapacity: 1000, - cityName: 'Tehran', - ), - ]; - final expectedPagination = PaginationModel( - results: expectedFarms, - count: 1, - next: null, - previous: null, - ); - - // Mock the flow - when( - () => mockRemote.getPoultryScienceFarmList( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedPagination); - - // Act - final farms = await poultryScienceRepository.getPoultryScienceFarmList( - token: token, - queryParameters: queryParameters, - ); - - // Assert - expect(farms, equals(expectedPagination)); - - verify( - () => mockRemote.getPoultryScienceFarmList( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - }); - }); - - group('Pricing and Market Data Flow', () { - test('should complete pricing and market data workflow', () async { - // Arrange - final queryParameters = {'date': '2024-01-01'}; - - final expectedApprovedPrice = ApprovedPrice( - approved: true, - lowestPrice: 45000.0, - highestPrice: 55000.0, - lowestWeight: 1.5, - highestWeight: 2.5, - ); - - final expectedSellForFreezing = SellForFreezing(permission: true); - - final expectedPoultryExport = PoultryExport( - key: 'export-key', - allow: true, - limitationStatus: false, - limitation: 100.0, - ); - - // Mock the flow - when( - () => mockRemote.getApprovedPrice( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedApprovedPrice); - - when( - () => mockRemote.getSellForFreezing( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedSellForFreezing); - - when( - () => mockRemote.getPoultryExport( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedPoultryExport); - - // Act - Step 1: Get approved price - final approvedPrice = await poultryScienceRepository.getApprovedPrice( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 2: Get sell for freezing data - final sellForFreezing = await poultryScienceRepository - .getSellForFreezing(token: token, queryParameters: queryParameters); - - // Act - Step 3: Get poultry export data - final poultryExport = await poultryScienceRepository.getPoultryExport( - token: token, - queryParameters: queryParameters, - ); - - // Assert - expect(approvedPrice, equals(expectedApprovedPrice)); - expect(sellForFreezing, equals(expectedSellForFreezing)); - expect(poultryExport, equals(expectedPoultryExport)); - - verify( - () => mockRemote.getApprovedPrice( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.getSellForFreezing( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.getPoultryExport( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - }); - }); - - group('Kill Registration Flow', () { - test('should complete kill registration workflow', () async { - // Arrange - final queryParameters = {'page': '1', 'limit': '10'}; - - final expectedKillRequests = [ - KillRequestPoultry( - key: 'kill-request-1', - unitName: 'Farm 1', - totalCapacity: 1000, - cityName: 'Tehran', - provinceName: 'Tehran', - ), - ]; - - final expectedKillHouses = [ - KillHousePoultry( - name: 'Kill House 1', - killer: true, - fullname: 'Kill House Manager', - quantitySum: 500, - firstQuantity: 100, - poultryQuantitySum: 400, - killReqKey: 'killhouse-1', - ), - ]; - - final expectedPoultryHatching = [ - PoultryHatching( - key: 'hatching-1', - quantity: 100, - losses: 5, - leftOver: 95, - killedQuantity: 50, - state: 'active', - date: '2024-01-01', - age: 30, - ), - ]; - - final killRegistrationRequest = KillRegistrationRequest( - killReqKey: 'registration-key', - operatorKey: 'operator-1', - poultryHatchingKey: 'hatching-1', - quantity: 100, - sendDate: '2024-01-01', - chickenBreed: 'Broiler', - indexWeight: 2.0, - losses: '5', - freezing: false, - export: false, - cash: true, - credit: false, - role: 'farmer', - poultryKey: 'poultry-1', - amount: 100000, - financialOperation: 'cash', - freeSaleInProvince: true, - confirmPoultryMobile: '09123456789', - ); - - // Mock the flow - when( - () => mockRemote.getUserPoultry( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer( - (_) async => expectedKillRequests.cast(), - ); - - when( - () => mockRemote.getKillHouseList( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedKillHouses.cast()); - - when( - () => mockRemote.getPoultryHatching( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer( - (_) async => expectedPoultryHatching.cast(), - ); - - when( - () => mockRemote.submitKillRegistration( - token: token, - request: killRegistrationRequest, - ), - ).thenAnswer((_) async {}); - - // Act - Step 1: Get user poultry - final killRequests = await poultryScienceRepository.getUserPoultry( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 2: Get kill house list - final killHouses = await poultryScienceRepository.getKillHouseList( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 3: Get poultry hatching - final poultryHatching = await poultryScienceRepository - .getPoultryHatching(token: token, queryParameters: queryParameters); - - // Act - Step 4: Submit kill registration - await poultryScienceRepository.submitKillRegistration( - token: token, - request: killRegistrationRequest, - ); - - // Assert - expect(killRequests, equals(expectedKillRequests)); - expect(killHouses, equals(expectedKillHouses)); - expect(poultryHatching, equals(expectedPoultryHatching)); - - verify( - () => mockRemote.getUserPoultry( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.getKillHouseList( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.getPoultryHatching( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.submitKillRegistration( - token: token, - request: killRegistrationRequest, - ), - ).called(1); - }); - }); - - group('Poultry Order Management Flow', () { - test('should complete poultry order management workflow', () async { - // Arrange - final queryParameters = {'page': '1', 'limit': '10'}; - const orderId = 'order-1'; - - final expectedOrders = [ - PoultryOrder( - key: 'order-1', - id: 1, - orderCode: 1001, - createDate: '2024-01-01', - sendDate: '2024-01-02', - quantity: 100, - firstQuantity: 100, - amount: 5000000.0, - finalState: 'pending', - provinceState: 'pending', - stateProcess: 'processing', - freeSaleInProvince: true, - freezing: false, - export: false, - market: true, - ), - ]; - final expectedPagination = PaginationModel( - count: 1, - next: null, - previous: null, - results: expectedOrders, - ); - - // Mock the flow - when( - () => mockRemote.getPoultryOderList( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedPagination); - - when( - () => mockRemote.deletePoultryOder(token: token, orderId: orderId), - ).thenAnswer((_) async {}); - - // Act - Step 1: Get poultry orders - final orders = await poultryScienceRepository.getPoultryOderList( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 2: Delete poultry order - await poultryScienceRepository.deletePoultryOder( - token: token, - orderId: orderId, - ); - - // Assert - expect(orders, equals(expectedPagination)); - - verify( - () => mockRemote.getPoultryOderList( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.deletePoultryOder(token: token, orderId: orderId), - ).called(1); - }); - }); - - group('All Poultry Data Flow', () { - test('should complete all poultry data retrieval workflow', () async { - // Arrange - final queryParameters = {'type': 'all'}; - - final expectedAllPoultry = [ - AllPoultry( - key: 'poultry-1', - unitName: 'Poultry Farm 1', - lastHatchingRemainQuantity: 100, - provinceAllowSellFree: true, - ), - ]; - - // Mock the flow - when( - () => mockRemote.getAllPoultry( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedAllPoultry.cast()); - - // Act - final allPoultry = await poultryScienceRepository.getAllPoultry( - token: token, - queryParameters: queryParameters, - ); - - // Assert - expect(allPoultry, equals(expectedAllPoultry)); - - verify( - () => mockRemote.getAllPoultry( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - }); - }); - - group('Error Handling in Poultry Science Workflow', () { - test('should handle home poultry data retrieval failure', () async { - // Arrange - const type = 'hatching'; - - when( - () => mockRemote.getHomePoultryScience(token: token, type: type), - ).thenAnswer((_) async => null); - - // Act - final homeModel = await poultryScienceRepository.getHomePoultry( - token: token, - type: type, - ); - - // Assert - expect(homeModel, isNull); - verify( - () => mockRemote.getHomePoultryScience(token: token, type: type), - ).called(1); - }); - - test('should handle kill registration submission failure', () async { - // Arrange - final killRegistrationRequest = KillRegistrationRequest( - killReqKey: 'registration-key', - operatorKey: 'operator-1', - poultryHatchingKey: 'hatching-1', - quantity: 100, - sendDate: '2024-01-01', - chickenBreed: 'Broiler', - indexWeight: 2.0, - losses: '5', - freezing: false, - export: false, - cash: true, - credit: false, - role: 'farmer', - poultryKey: 'poultry-1', - amount: 100000, - financialOperation: 'cash', - freeSaleInProvince: true, - confirmPoultryMobile: '09123456789', - ); - - when( - () => mockRemote.submitKillRegistration( - token: token, - request: killRegistrationRequest, - ), - ).thenThrow(Exception('Kill registration submission failed')); - - // Act & Assert - expect( - () => poultryScienceRepository.submitKillRegistration( - token: token, - request: killRegistrationRequest, - ), - throwsA(isA()), - ); - - verify( - () => mockRemote.submitKillRegistration( - token: token, - request: killRegistrationRequest, - ), - ).called(1); - }); - }); - }); -} - -// Mock FormData class -class MockFormData extends Mock implements FormData {} diff --git a/packages/chicken/test/integration/steward_workflow_integration_test.dart b/packages/chicken/test/integration/steward_workflow_integration_test.dart deleted file mode 100644 index 58025c8..0000000 --- a/packages/chicken/test/integration/steward_workflow_integration_test.dart +++ /dev/null @@ -1,456 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:mocktail/mocktail.dart'; -import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart'; -import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote.dart'; -import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'; -import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; -import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart'; -import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart'; -import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; -import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart'; -import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; -import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; -import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository_imp.dart'; -import 'package:rasadyar_core/core.dart'; - -class MockChickenRemoteDatasource extends Mock - implements ChickenRemoteDatasource {} - -class MockChickenLocalDataSource extends Mock - implements ChickenLocalDataSource {} - -void main() { - late ChickenRepositoryImp chickenRepository; - late MockChickenRemoteDatasource mockRemote; - late MockChickenLocalDataSource mockLocal; - - setUp(() { - mockRemote = MockChickenRemoteDatasource(); - mockLocal = MockChickenLocalDataSource(); - chickenRepository = ChickenRepositoryImp( - remote: mockRemote, - local: mockLocal, - ); - }); - - group('Steward Workflow Integration Tests', () { - const token = 'test-token'; - - group('Complete Steward Dashboard Flow', () { - test('should complete full steward dashboard workflow', () async { - // Arrange - const startDate = '2024-01-01'; - const endDate = '2024-01-31'; - - final expectedDashboard = StewardFreeBarDashboard( - totalBars: 1000, - totalQuantity: 800, - totalWeight: 200, - ); - - final expectedBroadcastPrice = BroadcastPrice( - active: true, - killHousePrice: 45000, - stewardPrice: 50000, - guildPrice: 55000, - ); - - final expectedProfile = GuildProfile( - key: 'profile-key', - guilds_name: 'Test Guild', - type_activity: 'Test Guild Type', - area_activity: 'Test Guild Type Description', - ); - - // Mock the flow - when( - () => mockRemote.getStewardDashboard( - token: token, - stratDate: startDate, - endDate: endDate, - ), - ).thenAnswer((_) async => expectedDashboard); - - when( - () => mockRemote.getBroadcastPrice(token: token), - ).thenAnswer((_) async => expectedBroadcastPrice); - - when( - () => mockRemote.getProfile(token: token), - ).thenAnswer((_) async => expectedProfile); - - // Act - Step 1: Get steward dashboard - final dashboard = await chickenRepository.getStewardDashboard( - token: token, - stratDate: startDate, - endDate: endDate, - ); - - // Act - Step 2: Get broadcast price - final broadcastPrice = await chickenRepository.getBroadcastPrice( - token: token, - ); - - // Act - Step 3: Get profile - final profile = await chickenRepository.getProfile(token: token); - - // Assert - expect(dashboard, equals(expectedDashboard)); - expect(broadcastPrice, equals(expectedBroadcastPrice)); - expect(profile, equals(expectedProfile)); - - verify( - () => mockRemote.getStewardDashboard( - token: token, - stratDate: startDate, - endDate: endDate, - ), - ).called(1); - verify(() => mockRemote.getBroadcastPrice(token: token)).called(1); - verify(() => mockRemote.getProfile(token: token)).called(1); - }); - }); - - group('Inventory Management Flow', () { - test('should complete inventory management workflow', () async { - // Arrange - final expectedInventory = [ - InventoryModel( - key: 'inventory-1', - name: 'Product 1', - totalCarcassesQuantity: 100, - ), - InventoryModel( - key: 'inventory-2', - name: 'Product 2', - totalCarcassesQuantity: 200, - ), - ]; - - final expectedKillHouseInfo = KillHouseDistributionInfo( - stewardAllocationsWeight: 1000.0, - freeSalesWeight: 500.0, - ); - - // Mock the flow - when( - () => mockRemote.getInventory( - token: token, - cancelToken: any(named: 'cancelToken'), - ), - ).thenAnswer((_) async => expectedInventory); - - when( - () => mockRemote.getKillHouseDistributionInfo(token: token), - ).thenAnswer((_) async => expectedKillHouseInfo); - - // Act - Step 1: Get inventory - final inventory = await chickenRepository.getInventory(token: token); - - // Act - Step 2: Get kill house distribution info - final killHouseInfo = await chickenRepository - .getKillHouseDistributionInfo(token: token); - - // Assert - expect(inventory, equals(expectedInventory)); - expect(killHouseInfo, equals(expectedKillHouseInfo)); - - verify( - () => mockRemote.getInventory( - token: token, - cancelToken: any(named: 'cancelToken'), - ), - ).called(1); - verify( - () => mockRemote.getKillHouseDistributionInfo(token: token), - ).called(1); - }); - }); - - group('Allocation Management Flow', () { - test('should complete allocation management workflow', () async { - // Arrange - final queryParameters = {'page': '1', 'limit': '10'}; - - final expectedAllocations = [ - AllocatedMadeModel( - key: 'allocation-1', - productName: 'Product 1', - numberOfCarcasses: 100, - ), - ]; - final expectedPagination = PaginationModel( - results: expectedAllocations, - count: 1, - ); - - final allocationRequest = { - 'allocationId': 'allocation-1', - 'confirmed': true, - }; - - // Mock the flow - when( - () => mockRemote.getAllocatedMade( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedPagination); - - when( - () => mockRemote.confirmAllocation( - token: token, - allocation: allocationRequest, - ), - ).thenAnswer((_) async {}); - - // Act - Step 1: Get allocated made - final allocations = await chickenRepository.getAllocatedMade( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 2: Confirm allocation - await chickenRepository.confirmAllocation( - token: token, - allocation: allocationRequest, - ); - - // Assert - expect(allocations, equals(expectedPagination)); - - verify( - () => mockRemote.getAllocatedMade( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.confirmAllocation( - token: token, - allocation: allocationRequest, - ), - ).called(1); - }); - }); - - group('Steward Free Bar Management Flow', () { - test('should complete steward free bar management workflow', () async { - // Arrange - final queryParameters = {'page': '1', 'limit': '10'}; - - final expectedFreeBars = [ - StewardFreeBar( - key: 'freebar-1', - killHouseName: 'Bar 1', - weightOfCarcasses: 500.0, - ), - ]; - final expectedPagination = PaginationModel( - results: expectedFreeBars, - count: 1, - ); - - final createRequest = CreateStewardFreeBar( - key: 'new-freebar', - killHouseName: 'New Bar', - weightOfCarcasses: 300, - ); - - // Mock the flow - when( - () => mockRemote.getStewardPurchasesOutSideOfTheProvince( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedPagination); - - when( - () => mockRemote.createStewardPurchasesOutSideOfTheProvince( - token: token, - body: createRequest, - ), - ).thenAnswer((_) async {}); - - // Act - Step 1: Get steward purchases outside province - final freeBars = await chickenRepository - .getStewardPurchasesOutSideOfTheProvince( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 2: Create new steward purchase - await chickenRepository.createStewardPurchasesOutSideOfTheProvince( - token: token, - body: createRequest, - ); - - // Assert - expect(freeBars, equals(expectedPagination)); - - verify( - () => mockRemote.getStewardPurchasesOutSideOfTheProvince( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.createStewardPurchasesOutSideOfTheProvince( - token: token, - body: createRequest, - ), - ).called(1); - }); - }); - - group('Segmentation Management Flow', () { - test('should complete segmentation management workflow', () async { - // Arrange - final queryParameters = {'page': '1', 'limit': '10'}; - - final expectedSegments = [ - SegmentationModel( - key: 'segment-1', - result: 'Segment 1', - quota: 'Description 1', - ), - ]; - final expectedPagination = PaginationModel( - results: expectedSegments, - count: 1, - ); - - final newSegment = SegmentationModel( - key: 'new-segment', - result: 'New Segment', - quota: 'New Description', - ); - - // Mock the flow - when( - () => mockRemote.getSegmentation( - token: token, - queryParameters: queryParameters, - ), - ).thenAnswer((_) async => expectedPagination); - - when( - () => mockRemote.createSegmentation(token: token, model: newSegment), - ).thenAnswer((_) async {}); - - // Act - Step 1: Get segmentation - final segments = await chickenRepository.getSegmentation( - token: token, - queryParameters: queryParameters, - ); - - // Act - Step 2: Create new segmentation - await chickenRepository.createSegmentation( - token: token, - model: newSegment, - ); - - // Assert - expect(segments, equals(expectedPagination)); - - verify( - () => mockRemote.getSegmentation( - token: token, - queryParameters: queryParameters, - ), - ).called(1); - verify( - () => mockRemote.createSegmentation(token: token, model: newSegment), - ).called(1); - }); - }); - - group('Local Data Integration', () { - test('should integrate local data with remote operations', () async { - // Arrange - final expectedWidelyUsed = WidelyUsedLocalModel( - hasInit: true, - items: [], - ); - - // Mock local data - when(() => mockLocal.getAllWidely()).thenReturn(expectedWidelyUsed); - - // Act - final widelyUsed = chickenRepository.getAllWidely(); - - // Assert - expect(widelyUsed, equals(expectedWidelyUsed)); - verify(() => mockLocal.getAllWidely()).called(1); - }); - - test('should initialize widely used data', () async { - // Arrange - when(() => mockLocal.initWidleyUsed()).thenAnswer((_) async {}); - - // Act - await chickenRepository.initWidleyUsed(); - - // Assert - verify(() => mockLocal.initWidleyUsed()).called(1); - }); - }); - - group('Error Handling in Steward Workflow', () { - test('should handle inventory retrieval failure', () async { - // Arrange - when( - () => mockRemote.getInventory( - token: token, - cancelToken: any(named: 'cancelToken'), - ), - ).thenAnswer((_) async => null); - - // Act - final inventory = await chickenRepository.getInventory(token: token); - - // Assert - expect(inventory, isNull); - verify( - () => mockRemote.getInventory( - token: token, - cancelToken: any(named: 'cancelToken'), - ), - ).called(1); - }); - - test('should handle allocation confirmation failure', () async { - // Arrange - final allocationRequest = { - 'allocationId': 'allocation-1', - 'confirmed': true, - }; - - when( - () => mockRemote.confirmAllocation( - token: token, - allocation: allocationRequest, - ), - ).thenThrow(Exception('Allocation confirmation failed')); - - // Act & Assert - expect( - () => chickenRepository.confirmAllocation( - token: token, - allocation: allocationRequest, - ), - throwsA(isA()), - ); - - verify( - () => mockRemote.confirmAllocation( - token: token, - allocation: allocationRequest, - ), - ).called(1); - }); - }); - }); -} diff --git a/packages/core/lib/utils/logger_utils.dart b/packages/core/lib/utils/logger_utils.dart index 8d83ded..151e960 100644 --- a/packages/core/lib/utils/logger_utils.dart +++ b/packages/core/lib/utils/logger_utils.dart @@ -3,41 +3,37 @@ import 'package:logger/logger.dart'; import 'package:rasadyar_core/injection/di.dart'; void iLog(dynamic message) { - if(kDebugMode){ + if (kDebugMode) { diCore.get().i(message.toString()); } } -void wLog(dynamic message){ - if(kDebugMode){ +void wLog(dynamic message) { + if (kDebugMode) { diCore.get().w(message.toString()); } } void eLog(dynamic message) { - if(kDebugMode){ - diCore.get().e(message.toString()); + if (kDebugMode) { + diCore.get().e(message.toString()); } } - void dLog(dynamic message) { - if(kDebugMode){ - diCore.get().d(message.toString()); + if (kDebugMode) { + diCore.get().d(message.toString()); } } - -void fLog(dynamic message){ - if(kDebugMode){ - diCore.get().f(message.toString()); +void fLog(dynamic message) { + if (kDebugMode) { + diCore.get().f(message.toString()); } } - void tLog(dynamic message) { - if(kDebugMode){ - diCore.get().t(message.toString()); + if (kDebugMode) { + diCore.get().t(message.toString()); } } -